国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > JS > 正文

js+css實現紅包雨效果

2024-05-06 16:45:11
字體:
來源:轉載
供稿:網友

本文實例為大家分享了js實現紅包雨展示的具體代碼,供大家參考,具體內容如下

1.html部分

紅包的樣子,先寫一個模版在頁面上

 <div class="hide"> <div class="RedPackage__Box js-RedPackageBox" data-txt>  <img src="./images/redPackage.png" </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();

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 绥德县| 富蕴县| 新泰市| 大理市| 罗甸县| 沈阳市| 嘉义市| 塘沽区| 榆林市| 明溪县| 城口县| 江川县| 噶尔县| 连城县| 郴州市| 舞钢市| 鄂托克旗| 武强县| 会泽县| 新巴尔虎左旗| 宜州市| 绩溪县| 金阳县| 务川| 获嘉县| 余庆县| 理塘县| 昌都县| 额敏县| 临泽县| 库尔勒市| 三原县| 乌恰县| 东乌珠穆沁旗| 兰考县| 江阴市| 湘潭县| 甘谷县| 文化| 龙井市| 临桂县|