這篇文章主要介紹js+css如何實現紅包雨效果,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
具體內容如下
1.html部分
紅包的樣子,先寫一個模版在頁面上
<div class="hide"> <div class="RedPackage__Box js-RedPackageBox" data-txt> <img src="./images/redPackage.png" alt=""> </div> </div>
顯示紅包的容器
<div class="RedPackage__Main js-RedPackage"></div>
2.js部分
const $redPackage = $('.js-RedPackage'); const $redPackageBox = $('.js-RedPackageBox'); const redPackageWidth = $redPackage.width(); const redPackageBoxWidth = $redPackageBox.width(); //因為紅包有角度旋轉的問題,所以需要計算一下,避免旋轉之后溢出屏幕 const basePadding = 30; const maxLeftPx = redPackageWidth - redPackageBoxWidth - basePadding * 2; //每一個紅包都是相對于父元素定位,通過z-index來設置層級 let zIndex = 1; function bindEvent() { $redPackage.on('click', '.js-RedPackageBox', function() { //拿到每個紅包的數據 const data = $(this).data('txt'); } } //生成mix-max的隨機數 function getRandom(min, max) { return Math.round(Math.random() * (max - min) + min); } //紅包的移動 function redPackageBoxSpeed($el, time) { $el.animate( { top: '130%', }, time * 1000, function() { $el.remove(); } ); } //生成紅包 function createRedPackageNode() { const $newNode = $redPackageBox.clone(true); //紅包攜帶的數據 const txt = keyList.shift(); keyList.push(txt); $newNode.attr('data-txt', JSON.stringify(txt)); //紅包隨機旋轉-30~30度 $newNode.css({ 'z-index': zIndex++, left: getRandom(basePadding, maxLeftPx) + 'px', transform: 'rotate(' + getRandom(-30, 30) + 'deg)', }); $redPackage.append($newNode); redPackageBoxSpeed($newNode, 4); } //紅包的動態創建 function createRedPackageRain() { setInterval(() => { createRedPackageNode(); }, 300); } function ready() { bindEvent(); createRedPackageRain(); } ready();
以上是“js+css如何實現紅包雨效果”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。