时间:2021-05-26
本文实例为大家分享了js实现红包雨展示的具体代码,供大家参考,具体内容如下
1.html部分
红包的样子,先写一个模版在页面上
显示红包的容器
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();以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了js+CSS实现模拟select控件的下拉菜单效果。分享给大家供大家参考。具体如下:这是一个JS+CSS技术实现的Select控件效果,模拟出来的
本文实例为大家分享了js实现移动端红包雨页面的具体代码,供大家参考,具体内容如下实习的效果如下:具体代码如下html部分:红包雨demo.css为初始化css,
本文实例讲述了JS+CSS实现自动改变切换方向图片幻灯切换效果的方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:JS+CSS自动改变切换方向的图
本文实例讲述了JS+CSS实现淡入式焦点图片幻灯切换效果的方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:一款JS+CSS淡入式焦点图片幻灯切换
本文实例讲述了JS+CSS实现美化的下拉列表框效果。分享给大家供大家参考。具体如下:一款经过JS+CSS美化的下拉列表,效果很不错,但代码有点偏多,学习CSS的