vue移动端实现红包雨效果


Posted in Javascript onJune 23, 2020

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

vue移动端实现红包雨效果

下面是代码:

<template>
 <div class="ser_home">
 <ul class="red_packet" id="red_packet">
  <template v-for="(item, index) in liParams">
  <li :style="{ left: item.left, animationDuration: item.durTime, webkitAnimationDuration: item.durTime}" 
 :class="item.cls" :data-index="index" @webkitAnimationEnd="removeDom">
   <a href='javascript:;'>
   <i :style="{ transform: item.transforms, webkitTransform: item.transforms}"></i>
   </a>
  </li>
  </template>
 </ul>
 </div>
</template>


<script>
export default {
 data () {
 return {
  liParams: [],
  timer: null,
  duration: 10000 // 定义时间
 }
 },
 mounted () {
 this.startRedPacket()
 },
 methods: {
 /**
  * 开启动画
  */
 startRedPacket() {
  let win = document.documentElement.clientWidth || document.body.clientWidth
  let left = parseInt(Math.random() * (win - 50) + 0);
  
  let rotate = (parseInt(Math.random() * (45 - (-45)) - 45)) + "deg"; // 旋转角度
  let scales = (Math.random() * (12 - 8 + 1) + 8) * 0.1; // 图片尺寸
  let durTime = (Math.random() * (2.5 - 1.2 + 1) + 1.2) + 's'; // 时间 1.2和1.2这个数值保持一样
  console.log(durTime)
  this.liParams.push({left: left+'px', cls: 'move_1', transforms: 'rotate('+ rotate +') scale('+ scales +')', durTime: durTime})


  setTimeout( () => { // 多少时间结束
  clearTimeout(this.timer)
  return;
  }, this.duration)


  this.timer = setTimeout( () => {
  this.startRedPacket()
  },100) 
 },
 /**
  * 回收dom节点
  */
 removeDom (e) {
  let target = e.currentTarget;
  document.querySelector('#red_packet').removeChild(target)
 }
 }
}
</script>


<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped lang="scss">
.ser_home {
 width: 100%;
 height: 100%;
}
.red_packet {
 display: block;
 position: relative;
 overflow: hidden;
 width: 100%;
 height: 100%;
 i {
 width: 48px;
 height: 69px;
 display: block;
 background: url('/hongbao.png') no-repeat;
 }
 li {
 position: absolute;
 animation: all 3s linear;
 top:-100px;
 z-index: 10;
 &.move_1 {
  -webkit-animation: aim_move 5s linear 1 forwards;
  animation: aim_move 5s linear 1 forwards;
 }
 }
 a {
 display: block;
 }
}


@keyframes aim_move {
 0% {
 -webkit-transform: translateY(0);
 transform: translateY(0);
 }
 100% {
 -webkit-transform: translateY(120vh);
 transform: translateY(120vh);
 }
 }

</style>

效果图:

vue移动端实现红包雨效果

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

Javascript 相关文章推荐
动态加载js文件 document.createElement
Oct 14 Javascript
JSP跨iframe如何传递参数实现代码
Sep 21 Javascript
JS 新增Cookie 取cookie值 删除cookie 举例详解
Oct 10 Javascript
学习javascript面向对象 实例讲解面向对象选项卡
Jan 04 Javascript
Vue.js第四天学习笔记(组件)
Dec 02 Javascript
Angular 4依赖注入学习教程之简介(一)
Jun 04 Javascript
JS实现图片手风琴效果
Apr 17 Javascript
ReactNative中使用Redux架构总结
Dec 15 Javascript
微信小程序之批量上传并压缩图片的实例代码
Jul 05 Javascript
JavaScript事件对象event用法分析
Jul 27 Javascript
使用JS代码实现俄罗斯方块游戏
Aug 03 Javascript
Vue router配置与使用分析讲解
Dec 24 Vue.js
vue实现学生录入系统之添加删除功能
Jul 11 #Javascript
微信小程序实现红包雨功能
Jul 11 #Javascript
小程序ios音频播放没声音问题的解决
Jul 11 #Javascript
vue 1.0 结合animate.css定义动画效果
Jul 11 #Javascript
微信小程序实现发红包功能
Jul 11 #Javascript
vue框架搭建之axios使用教程
Jul 11 #Javascript
vue中动态设置meta标签和title标签的方法
Jul 11 #Javascript
You might like
雄兵连三大错觉:凯莎没了,凉冰阵亡了,华烨觉得自己又行了
2020/04/09 国漫
php反弹shell实现代码
2009/04/22 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
2015/10/01 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
js实时监听文本框状态的方法
2011/04/26 Javascript
再说AutoComplete自动补全之实现原理
2011/11/05 Javascript
多个js与css文件的合并方法详细说明
2012/12/26 Javascript
html5的自定义data-*属性和jquery的data()方法的使用示例
2013/08/21 Javascript
JavaScript执行顺序详细介绍
2013/12/04 Javascript
javascript的解析执行顺序在各个浏览器中的不同
2014/03/17 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
关于JS中的方法是否加括号的问题
2016/07/27 Javascript
关于微信上网页图片点击全屏放大效果
2016/12/19 Javascript
nodejs读写json文件的简单方法(必看)
2017/03/09 NodeJs
微信小程序 滚动到某个位置添加class效果实现代码
2017/04/19 Javascript
Koa2微信公众号开发之本地开发调试环境搭建
2018/05/16 Javascript
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
微信小程序 image组件遇到的问题
2019/05/28 Javascript
JS中的算法与数据结构之队列(Queue)实例详解
2019/08/20 Javascript
Vue+elementui 实现复杂表头和动态增加列的二维表格功能
2019/09/23 Javascript
vue 子组件watch监听不到prop的解决
2020/08/09 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
[01:35]辉夜杯战队访谈宣传片—LGD
2015/12/25 DOTA
python中getattr函数使用方法 getattr实现工厂模式
2014/01/20 Python
python获取标准北京时间的方法
2015/03/24 Python
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
python实现串口通信的示例代码
2020/02/10 Python
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
经典商业广告词
2014/03/13 职场文书
考研英语辞职信
2015/05/13 职场文书
2015年反腐倡廉工作总结
2015/05/14 职场文书
2016年第十九届推普周活动总结
2016/04/06 职场文书
Win11电脑显示本地时间与服务器时间不一致怎么解决?
2022/04/05 数码科技
MySQL中JOIN连接的基本用法实例
2022/06/05 MySQL