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 focus不起作用的解决方法(主要是因为dom元素是否加载完成)
Nov 05 Javascript
js的alert样式如何更改如背景颜色
Jan 22 Javascript
js实现网站最上边可关闭的浮动广告条代码
Sep 04 Javascript
12种JavaScript常用的MVC框架比较分析
Nov 16 Javascript
javascript中call,apply,bind函数用法示例
Dec 19 Javascript
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
关于jquery form表单序列化的注意事项详解
Aug 01 jQuery
js实现rem自动匹配计算font-size的示例
Nov 18 Javascript
详解node Async/Await 更好的异步编程解决方案
May 10 Javascript
JS实现获取进今年第几天是周几的方法分析
Jun 27 Javascript
Vue+Element UI+vue-quill-editor富文本编辑器及插入图片自定义
Aug 20 Javascript
Node.js API详解之 dns模块用法实例分析
May 15 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
PHP编程之高级技巧——利用Mysql函数
2006/10/09 PHP
PHP OPCode缓存 APC详细介绍
2010/10/12 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
Javascript学习笔记 delete运算符
2011/09/13 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
2012/12/27 Javascript
JSON 数字排序多字段排序介绍
2013/09/18 Javascript
js中一个函数获取另一个函数返回值问题探讨
2013/11/21 Javascript
jquery中load方法的用法及注意事项说明
2014/02/22 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
js获取滚动距离的方法
2015/05/30 Javascript
使用Node.js实现HTTP 206内容分片的教程
2015/06/23 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
JavaScript——DOM操作——Window.document对象详解
2016/07/14 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
vue开发心得和技巧分享
2016/10/27 Javascript
bootstrap响应式表格实例详解
2017/05/15 Javascript
Vue2.0 从零开始_环境搭建操作步骤
2017/06/14 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
NodeJS简单实现WebSocket功能示例
2018/02/10 NodeJs
4个顶级开源JavaScript图表库
2018/09/29 Javascript
Ant Design Pro 下实现文件下载的实现代码
2019/12/03 Javascript
JavaScript定时器使用方法详解
2020/03/26 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
python+requests+unittest API接口测试实例(详解)
2017/06/10 Python
python实现时间o(1)的最小栈的实例代码
2018/07/23 Python
Python aiohttp百万并发极限测试实例分析
2019/10/26 Python
Python tkinter制作单机五子棋游戏
2020/09/14 Python
python 如何引入协程和原理分析
2020/11/30 Python
html5 Canvas画图教程(1)—画图的基本常识
2013/01/09 HTML / CSS
超市端午节活动方案
2014/01/23 职场文书
业绩倒数第一的检讨书
2014/09/24 职场文书
2014年团队工作总结
2014/11/24 职场文书
北京青年观后感
2015/06/15 职场文书
优秀新员工事迹材料
2019/05/13 职场文书
家电创业计划书
2019/08/05 职场文书
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers