CSS+JS實現愛心點贊按鈕(代碼示例)
本篇文章給大家介紹一下css+js實現一個“愛之滿滿”點贊按鈕的方法,希望對大家有所幫助!
前段時間在看一檔說唱節目,被里面的一個說唱歌手JBcob的愛之滿滿這句詞給洗腦了。
于是這次給大家帶來一個愛之滿滿的點贊按鈕,讓大家在點贊的同時還能感受到被愛包裹的感覺。
立即學習“前端免費學習筆記(深入)”;
ToDoList
- 愛心按鈕
- 引導點贊
- 愛之滿滿
Just Do It
?? 愛心按鈕
- 制作一個愛心的方式有很多,可以用圖標庫的愛心,可以寫一個svg,可以用圖片,我這里就用偽元素的方式做一個愛心。(學習視頻分享:css視頻教程)
<!-- fullLove.html --> <div class="likeBtn" id="likeBtn"> <span class="heart" id="heart"></span> </div>
/* fullLove.css */ .heart{ background-color: #8a93a0; height: 13px; width: 13px; transform: rotate(-45deg) scale(1); display: inline-block; } .heart::before { content: ''; position: absolute; top: -50%; left: 0; background-color: inherit; border-radius: 50%; height: 13px; width: 13px; } .heart::after { content: ''; position: absolute; top: 0; right: -50%; background-color: inherit; border-radius: 50%; height: 13px; width: 13px; }
- 再給外層加一些陰影就可以出來擬態化效果
引導點贊
- 我們需要讓按鈕做出一些視覺效果來引導觀眾姥爺們點贊,那持續震動無疑是一種好的選擇。
// love.js const likeBtn = document.getElementById('likeBtn'); const heart=document.getElementById('heart') likeBtn.addEventListener('mousemove',() => { heart.classList.add('heratPop') }) likeBtn.addEventListener('mouseout',() => { heart.classList.remove('heratPop') })
/* fullLove.css */ .heratPop{ animation: pulse 1s linear infinite; } @keyframes pulse { 0% { transform: rotate(-45deg) scale(1); } 10% { transform: rotate(-45deg) scale(1.1); } 20% { transform: rotate(-45deg) scale(0.9); } 30% { transform: rotate(-45deg) scale(1.2); } 40% { transform: rotate(-45deg) scale(0.9); } 50% { transform: rotate(-45deg) scale(1.1); } 60% { transform: rotate(-45deg) scale(0.9); } 70% { transform: rotate(-45deg) scale(1); } }
愛之滿滿
- 接下來就是最主要的愛之滿滿了,怎么樣才能達到這種效果呢,那必然是越多的愛越好啊。
- 那我們想辦法讓愛心漂浮在按鈕周圍,在規定時間內愛心進行位移并消失即可。
- 創建一個元素可以使用document.createElement,移除元素可以使用DOM 的remove()
- 剩下的就簡單了,只需要在這個過程中給不同的愛心設置不同的大小和位移即可。
- 核心代碼(完整代碼請看文末):
// love.js function addHearts(content) { for(let i=0; i<10; i++) { setTimeout(() => { const fullHeart = document.createElement('div'); fullHeart.classList.add('hearts'); fullHeart.innerHTML = '<span class="heart"></span>'; fullHeart.style.left = Math.random() * 100 + '%'; fullHeart.style.top = Math.random() * 100 + '%'; fullHeart.style.transform = `translate(-50%, -50%) scale(${Math.random()+0.3}) ` fullHeart.style.animationDuration = Math.random() * 2 + 3 + 's'; fullHeart.firstChild.style.backgroundColor='#ed3056' content.appendChild(fullHeart); setTimeout(() => { fullHeart.remove(); }, 3000); }, i * 100) } }
/* fullLove.css */ .hearts { position: absolute; color: #E7273F; font-size: 15px; top: 50%; left: 50%; transform: translate(-50%, -50%); animation: fly 3s linear forwards; } @keyframes fly { to { transform: translate(-50%, -50px) scale(0); } }
- 我們來看看最終的效果吧~在線演示地址
寫在最后
- 首先感謝大家看到這里,這次分享的是愛之滿滿點贊效果,希望可以幫助到有需要的同學。
更多編程相關知識,請訪問:編程學習!!
以上就是CSS+JS實現愛心點贊按鈕(代碼示例)的詳細內容,更多請關注有啊網站百科其它相關文章!
- 喜歡(10)
- 不喜歡(1)