js+css实现红包雨效果


Posted in Javascript onJuly 12, 2018

本文实例为大家分享了js实现红包雨展示的具体代码,供大家参考,具体内容如下

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();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript attachEvent绑定多个事件执行顺序问题
Oct 20 Javascript
js中将字符串转换成json的三种方式
Jan 12 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
Sep 16 Javascript
JS调用页面表格导出excel示例代码
Mar 18 Javascript
jquery的each方法使用示例分享
Mar 25 Javascript
jQuery获取及设置表单input各种类型值的方法小结
May 24 Javascript
关于session和cookie的简单理解
Jun 08 Javascript
js实现华丽的九九乘法表效果
Mar 29 Javascript
详解Node.js实现301、302重定向服务
Apr 07 Javascript
Js利用Canvas实现图片压缩功能
Sep 13 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
May 14 Javascript
浅析JavaScript预编译和暗示全局变量
Sep 03 Javascript
基于vue cli 通过命令行传参实现多环境配置
Jul 12 #Javascript
vue内置组件transition简单原理图文详解(小结)
Jul 12 #Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
Jul 11 #Javascript
vue.js实现的经典计算器/科学计算器功能示例
Jul 11 #Javascript
Vue.js实现的计算器功能完整示例
Jul 11 #Javascript
JavaScript类的继承方法小结【组合继承分析】
Jul 11 #Javascript
React中嵌套组件与被嵌套组件的通信过程
Jul 11 #Javascript
You might like
php限制文件下载速度的代码
2015/10/20 PHP
php构造方法中析构方法在继承中的表现
2016/04/12 PHP
php cookie用户登录的详解及实例代码
2017/01/03 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
jquery表单验证使用插件formValidator
2012/11/10 Javascript
ExtJS下 Ext.Direct加载和提交过程排错小结
2013/04/02 Javascript
可自定义速度的js图片无缝滚动示例分享
2014/01/20 Javascript
自动完成的搜索框javascript实现
2016/02/26 Javascript
关于JS中match() 和 exec() 返回值和属性的测试
2016/03/21 Javascript
js获取对象、数组的实际长度,元素实际个数的实现代码
2016/06/08 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
基于vue实现swipe轮播组件实例代码
2017/05/24 Javascript
深入理解JavaScript创建对象的多种方式以及优缺点
2017/06/01 Javascript
react-native-fs实现文件下载、文本存储的示例代码
2017/09/22 Javascript
javascript实现倒计时效果
2020/02/17 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
Pyhton中防止SQL注入的方法
2015/02/05 Python
基于python list对象中嵌套元组使用sort时的排序方法
2018/04/18 Python
python3+PyQt5重新实现自定义数据拖放处理
2018/04/19 Python
TensorFlow损失函数专题详解
2018/04/26 Python
python 将字符串完成特定的向右移动方法
2019/06/11 Python
Python如何在main中调用函数内的函数方式
2020/06/01 Python
python高级特性简介
2020/08/13 Python
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
Tomcat中怎么使用log4j输出所有的log
2016/07/07 面试题
会计专业毕业自荐书范文
2014/02/08 职场文书
大学生标准自荐书
2014/06/15 职场文书
2014年教育教学工作总结
2014/11/13 职场文书
2014年酒店前台工作总结
2014/11/14 职场文书
python Django框架快速入门教程(后台管理)
2021/07/21 Python
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python