javascript实现移动端红包雨页面


Posted in Javascript onJune 23, 2020

本文实例为大家分享了js实现移动端红包雨页面的具体代码,供大家参考,具体内容如下

实习的效果如下:

javascript实现移动端红包雨页面

javascript实现移动端红包雨页面

具体代码如下

html部分:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="ie=edge">
 <title>红包雨</title>
 <link rel="stylesheet" href="./css/demo.css" >
 <link rel="stylesheet" href="./css/index.css" >
</head>
<body>
 <!-- 红包 -->
 <ul class="redPaper">
  <!-- <li>
   <a href="#" rel="external nofollow" ><img src="./images/hb_1.png" alt=""></a>
  </li> -->
 </ul>
 <div class="backward">
  <span></span>
 </div>
 <script src="./js/jquery.min.js"></script>
 <script src="./js/index.js"></script>
 <script>
  
 </script>
</body>
</html>

demo.css为初始化css,可以不加
index.css部分

body{
 width: 100%;
 height: 100%;
 background-image: url(../images/bj.jpg);
 background-repeat: no-repeat;
 background-size: cover;
 position: relative;
}
.redPaper{
 width: 100%;
 height: 100%;
 /* border: 1px solid black; */
 overflow: hidden;
}
.redPaper li {
 position: absolute;
 animation: all 3s linear;
 top:-100px;
 -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
.redPaper li a{
 display: block;
}
.backward{
 width: 100%;
 background:#ccc;
 opacity: 0.5;
 position: absolute;
 top: 0;
 
}
.backward span{
 display: inline-block;
 width: 100px;
 height: 100px;
 color: #000;
 font-weight: bold;
 position: absolute;
 top: 0;
 left: 0;
 right: 0;
 bottom: 0;
 margin: auto;
 text-align: center;
 line-height: 100px;
 font-size: 1000%;
}

index.js部分:

$(document).ready(function () {
 var win = (parseInt($('.redPaper').css('width'))) - 60;
 console.log(win)
 $(".redPaper").css("height", $(document).height());
 $(".backward").css("height", $(document).height());
 $("li").css({});
 // 点击确认的时候关闭模态层
 // $(".sen a").click(function(){
 // $(".mo").css("display", "none")
 // });

 var del = function () {
  nums++;
  //  console.info(nums);
  //  console.log($(".li" + nums).css("left"));
  $(".li" + nums).remove();
  setTimeout(del, 200)
 }

 var addRedPaper = function () {
  var hb = parseInt(Math.random() * (3 - 1) + 1);
  var randomW = parseInt(Math.random() * (70 - 30) + 20);
  var randomLeft = parseInt(Math.random() * win);
  var randomRotate = (parseInt(Math.random() * 45)) + 'deg';
  // console.log(rot)
  num++;
  $(".redPaper").append("<li class='li" + num + "' ><a href='javascript:;'><img src='images/hb_" + hb + ".png' data-num ='" + num + "'></a></li>");
  $(".li" + num).css({
   "left": randomLeft,
  });
  $(".li" + num + " a img").css({
   "width": randomW,
   "transform": "rotate(" + randomRotate + ")",
   "-webkit-transform": "rotate(" + randomRotate + ")",
   "-ms-transform": "rotate(" + randomRotate + ")", /* Internet Explorer */
   "-moz-transform": "rotate(" + randomRotate + ")", /* Firefox */
   "-webkit-transform": "rotate(" + randomRotate + ")",/* Safari 和 Chrome */
   "-o-transform": "rotate(" + randomRotate + ")" /* Opera */
  });
  $(".li" + num).animate({ 'top': $(window).height() + 20 }, 5000, function () {
   //删掉已经显示的红包
   this.remove()
  });
  //点击红包的时候弹出模态层
  $(".li" + num).click(function (e) {
   if (e.target.tagName == 'IMG') {
    console.log(e.target.dataset.num)
   }

  });
  setTimeout(addRedPaper, 200)
 }

 //增加红包
 var num = 0;
 setTimeout(addRedPaper, 3000);

 //倒数计时
 var backward = function () {
  numz--;
  if (numz > 0) {
   $(".backward span").html(numz);
  } else {
   $(".backward").remove();
  }
  setTimeout(backward, 1000)

 }

 var numz = 4;
 backward();

})

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

Javascript 相关文章推荐
Jquery 获得服务器控件值的方法小结
May 11 Javascript
juqery 学习之三 选择器 简单 内容
Nov 25 Javascript
jQuery学习总结之jQuery事件
Jun 30 Javascript
Javascript基础_简单比较undefined和null 值
Jun 14 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
Dec 04 Javascript
js实现textarea限制输入字数
Feb 13 Javascript
jQuery插件echarts实现的多柱子柱状图效果示例【附demo源码下载】
Mar 04 Javascript
jq checkbox 的全选并ajax传参的实例
Apr 01 Javascript
给localStorage设置一个过期时间的方法分享
Nov 06 Javascript
turn.js异步加载实现翻书效果
Jul 25 Javascript
测量JavaScript函数的性能各种方式对比
Apr 27 Javascript
JavaScript严格模式不支持八进制的问题讲解
Nov 07 Javascript
JS实现canvas简单小画板功能
Jun 23 #Javascript
javascript+Canvas实现画板功能
Jun 23 #Javascript
vue.js实现照片放大功能
Jun 23 #Javascript
vue实现点击按钮切换背景颜色的示例代码
Jun 23 #Javascript
vue.js实现双击放大预览功能
Jun 23 #Javascript
vue实现分页的三种效果
Jun 23 #Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
Jun 23 #Javascript
You might like
解析isset与is_null的区别
2013/08/09 PHP
PHP实现图片旋转效果实例代码
2014/10/01 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
2019/09/30 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
PHP vsprintf()函数格式化字符串操作原理解析
2020/07/14 PHP
javascript 清除输入框中的数据
2009/04/13 Javascript
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
JavaScript匿名函数之模仿块级作用域
2015/12/12 Javascript
jQuery实现的兼容性浮动层示例
2016/08/02 Javascript
Javascript 实现微信分享(QQ、朋友圈、分享给朋友)
2016/10/21 Javascript
etmvc+jQuery EasyUI+combobox多值操作实现角色授权实例
2016/11/09 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
js实现登录注册框手机号和验证码校验(前端部分)
2017/09/28 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
vue-cli2.9.3 详细教程
2018/04/23 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
python进阶教程之异常处理
2014/08/30 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
Python 中的 else详解
2016/04/23 Python
django项目运行因中文而乱码报错的几种情况解决
2017/11/07 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
python实践项目之监控当前联网状态详情
2019/05/23 Python
详解python 破解网站反爬虫的两种简单方法
2020/02/09 Python
Keras SGD 随机梯度下降优化器参数设置方式
2020/06/19 Python
Python使用tkinter实现摇骰子小游戏功能的代码
2020/07/02 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
Allen Edmonds官方网站:一家美国优质男士鞋类及配饰制造商
2019/03/12 全球购物
简述网络文件系统NFS,并说明其作用
2016/10/19 面试题
业务员薪酬管理制度
2014/01/15 职场文书
企业总经理职责
2014/02/02 职场文书
元旦标语大全
2014/10/09 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书
vue.js Router中嵌套路由的实用示例
2021/06/27 Vue.js