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 相关文章推荐
两种WEB下的模态对话框 (asp.net或js的分别实现)
Dec 02 Javascript
jquery选择器使用详解
Apr 08 Javascript
JavaScript中常见的字符串操作函数及用法汇总
May 04 Javascript
js随机生成字母数字组合的字符串 随机动画数字
Sep 02 Javascript
JS实现页面中所有img对象添加onclick事件及新窗口查看图片的方法
Dec 27 Javascript
angular实现商品筛选功能
Feb 01 Javascript
React Native 搭建开发环境的方法步骤
Oct 30 Javascript
javaScript和jQuery自动加载简单代码实现方法
Nov 24 jQuery
js实现复制功能(多种方法集合)
Jan 06 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
Mar 20 Javascript
Webpack中loader打包各种文件的方法实例
Sep 03 Javascript
vue-video-player 断点续播的实现
Feb 01 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
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
php生成静态文件的多种方法分享
2012/07/17 PHP
js函数中onmousedown和onclick的区别和联系探讨
2013/05/19 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
javascript放大镜效果的简单实现
2013/12/09 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
JavaScript使用位运算符判断奇数和偶数的方法
2015/06/01 Javascript
百度地图API之本地搜索与范围搜索
2015/07/30 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
JavaScript如何实现跨域请求
2016/08/05 Javascript
AngularJs表单验证实例代码解析
2016/11/29 Javascript
用Nodejs搭建服务器访问html、css、JS等静态资源文件
2017/04/28 NodeJs
使用node.js搭建服务器
2017/05/20 Javascript
AngularJS中使用three.js的实例详解
2017/07/21 Javascript
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
微信小程序webview实现长按点击识别二维码功能示例
2019/01/24 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
vue之延时刷新实例
2019/11/14 Javascript
webpack常用构建优化策略小结
2019/11/21 Javascript
python批量修改文件名的实现代码
2014/09/01 Python
python创建列表并给列表赋初始值的方法
2015/07/28 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
selenium+python环境配置教程详解
2019/05/28 Python
Python3监控疫情的完整代码
2020/02/20 Python
Python实现AI换脸功能
2020/04/10 Python
数据库面试要点基本概念
2013/10/31 面试题
《北京的春节》教学反思
2014/04/07 职场文书
服务理念标语
2014/06/18 职场文书
四风问题对照检查材料
2014/09/22 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
2014年材料员工作总结
2014/11/19 职场文书
升学宴学生答谢词
2015/01/05 职场文书
中班上学期个人总结
2015/02/12 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
MySQL 数据 data 基本操作
2022/05/04 MySQL