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 相关文章推荐
比较简单实用的使用正则三种版本的js去空格处理方法
Nov 18 Javascript
推荐20家国外的脚本下载网站
Apr 28 Javascript
jQuery实现的仿百度分页足迹效果代码
Oct 30 Javascript
jQuery滚动新闻实现代码
Jun 26 Javascript
用jQuery的AJax实现异步访问、异步加载
Nov 02 Javascript
EditPlus中的正则表达式 实战(2)
Dec 15 Javascript
JS+html5制作简单音乐播放器
Sep 13 Javascript
详解Vue用axios发送post请求自动set cookie
May 10 Javascript
一次围绕setTimeout的前端面试经验分享
Jun 15 Javascript
jQuery列表检索功能实现代码
Jul 17 jQuery
Node.js使用MySQL连接池的方法实例
Feb 11 Javascript
vue 优化CDN加速的方法示例
Sep 19 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
删除及到期域名的查看(抢域名必备哦)
2008/05/14 PHP
PHPThumb PHP 图片缩略图库
2012/03/11 PHP
PHP curl 获取响应的状态码的方法
2014/01/13 PHP
php中出现空白页的原因及解决方法汇总
2014/07/08 PHP
PHP实现微信红包金额拆分试玩的算法示例
2018/04/07 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
js为鼠标添加右击事件防止默认的右击菜单弹出
2013/07/29 Javascript
jquery实现炫酷的叠加层自动切换特效
2015/02/01 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
Node.js 条形码识别程序构建思路详解
2016/02/14 Javascript
jQuery ztree实现动态树形多选菜单
2016/08/12 Javascript
JS 动态加载js文件和css文件 同步/异步的两种简单方式
2016/09/23 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
jquery dataTable 获取某行数据
2017/05/05 jQuery
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
JavaScript实现小球沿正弦曲线运动
2020/09/07 Javascript
[02:04]2014DOTA2国际邀请赛 BBC小组赛第三天总结
2014/07/12 DOTA
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
Python实现快速多线程ping的方法
2015/07/15 Python
Python实现简单的用户交互方法详解
2018/09/25 Python
python pygame模块编写飞机大战
2018/11/20 Python
Python实现点云投影到平面显示
2020/01/18 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
使用html5 canvas 画时钟代码实例分享
2015/11/11 HTML / CSS
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
简单介绍Object类的功能、常用方法
2013/10/02 面试题
简历中自我评价范文3则
2013/12/14 职场文书
档案接收函
2014/01/13 职场文书
推荐信怎么写
2014/05/09 职场文书
妇联主席先进事迹
2014/05/18 职场文书
爱心捐款活动总结
2015/05/09 职场文书
2015年大班保育员工作总结
2015/05/18 职场文书
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python