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 相关文章推荐
top.location.href 没有权限 解决方法
Aug 05 Javascript
如何使用json在前后台进行数据传输实例介绍
Apr 11 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
Feb 02 Javascript
javascript制作2048游戏
Mar 30 Javascript
javascript实现一个简单的弹出窗
Feb 22 Javascript
Bootstrap表单使用方法详解
Feb 17 Javascript
vue项目实现表单登录页保存账号和密码到cookie功能
Aug 31 Javascript
elementui之el-tebs浏览器卡死的问题和使用报错未注册问题
Jul 06 Javascript
小程序最新获取用户昵称和头像的方法总结
Sep 23 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
Jan 17 Javascript
js实现登录时记住密码的方法分析
Apr 05 Javascript
Vue router安装及使用方法解析
Dec 02 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
ThinkPHP入口文件设置及相关注意事项分析
2014/12/05 PHP
通过JAVAScript实现页面自适应
2007/01/19 Javascript
LBS blog sql注射漏洞[All version]-官方已有补丁
2007/08/26 Javascript
JS字符串函数扩展代码
2011/09/13 Javascript
jquery text(),val(),html()方法区别总结
2013/11/04 Javascript
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
C++中的string类的用法小结
2015/08/07 Javascript
BootStrap Typeahead自动补全插件实例代码
2016/08/10 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
基于bootstrop常用类总结(推荐)
2017/09/11 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
深入理解vue中slot与slot-scope的具体使用
2018/01/26 Javascript
vue input输入框模糊查询的示例代码
2018/05/22 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
jQuery实现简单评论区功能
2020/10/26 jQuery
[00:50]深扒TI7聊天轮盘语音出处6
2017/05/11 DOTA
python如何通过protobuf实现rpc
2016/03/06 Python
浅谈Python的文件类型
2016/05/30 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
python2与python3爬虫中get与post对比解析
2019/09/18 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
python使用QQ邮箱实现自动发送邮件
2020/06/22 Python
美国渔具店:FishUSA
2019/08/07 全球购物
Eclipse面试题
2014/03/22 面试题
留学自荐信的技巧
2013/10/17 职场文书
省级优秀毕业生主要事迹
2014/05/29 职场文书
2015毕业生自我评价范文
2015/03/02 职场文书
今日说法观后感
2015/06/08 职场文书
电力安全学习心得体会
2016/01/18 职场文书
Python Django ORM连表正反操作技巧
2021/06/13 Python
游戏《我的世界》澄清Xbox版暂无计划加入光追
2022/04/03 其他游戏