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 相关文章推荐
javascript自执行函数之伪命名空间封装法
Dec 25 Javascript
当jQuery遭遇CoffeeScript的时候 使用分享
Sep 17 Javascript
js之事件冒泡和事件捕获详细介绍
Oct 28 Javascript
javascript数组操作方法小结和3个属性详细介绍
Jul 05 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
Apr 29 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
Dec 13 Javascript
基于JavaScript实现的顺序查找算法示例
Apr 14 Javascript
Angular6新特性之Angular Material
Dec 28 Javascript
微信小程序后台持续定位功能使用详解
Aug 23 Javascript
vuex实现数据状态持久化
Nov 11 Javascript
JavaScript实现拖拽效果
Mar 16 Javascript
vue-cli4项目开启eslint保存时自动格式问题
Jul 13 Javascript
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
Protoss兵种介绍
2020/03/14 星际争霸
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
php设计模式 Factory(工厂模式)
2011/06/26 PHP
php笔记之:初探PHPcms模块开发介绍
2013/04/26 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
js读写json文件实例代码
2014/10/21 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
JavaScript+CSS实现仿天猫侧边网页菜单效果
2015/08/25 Javascript
JavaScript必知必会(九)function 说起 闭包问题
2016/06/08 Javascript
关于JavaScript限制字数的输入框的那些事
2016/08/14 Javascript
对js eval()函数的一些见解
2016/08/15 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
原生JS实现图片懒加载(lazyload)实例
2017/06/13 Javascript
详谈commonjs模块与es6模块的区别
2017/10/18 Javascript
细说webpack源码之compile流程-入口函数run
2017/12/26 Javascript
详解vue组件基础
2018/05/04 Javascript
Nuxt.js实现校验访问浏览器类型的中间件
2018/08/24 Javascript
js中null与空字符串&quot;&quot;的区别讲解
2019/01/17 Javascript
详解使用JWT实现单点登录(完全跨域方案)
2019/08/02 Javascript
JS操作json对象key、value的常用方法分析
2019/10/29 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
python实现电子词典
2020/04/23 Python
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
Python xlrd excel文件操作代码实例
2020/03/10 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
在Ajax应用中信息是如何在浏览器和服务器之间传递的
2016/05/31 面试题
大学生实习鉴定评语
2014/04/25 职场文书
大学生社会实践活动总结
2014/07/03 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
2015年小学数学教师个人工作总结
2015/05/25 职场文书
征求意见函
2015/06/05 职场文书
redis sentinel监控高可用集群实现的配置步骤
2022/04/01 Redis