广告位联系
返回顶部
分享到

js+css实现红包雨效果教程

JavaScript 来源:互联网搜集 作者:酷站 发布时间:2018-07-14 19:16:34 人浏览
摘要

今天小编给大家带来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部分

今天小编给大家带来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();


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计