jquery实现烟花效果(面向对象)


Posted in jQuery onMarch 10, 2020

本文实例为大家分享了jquery实现烟花效果的具体代码,供大家参考,具体内容如下

<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>烟花效果(面向对象)</title>
 <style type="text/css">
  *{padding: 0;margin: 0}
  body{overflow: hidden;width: 100%;height: 100%;background: #000; }
  div{position: absolute;background: #000;color: #fff}
 </style>
 <script src="jquery-1.8.3.min.js"></script></script>


</head>

<body>
<script type="text/javascript">
 var firWorks = {
  init : function(){ //初始化
   var _that = this;
    $(document).bind("click",function(e){
    _that.eventLeft = e.pageX;
    _that.eventTop = e.pageY;
    _that.createCylinder();
    });
  },
  createCylinder : function(event){ //创建一个花筒
   var _that = this;
   this.cHeight = document.documentElement.clientHeight;//浏览器高度
   this.cylinder = $("<div/>");
   $("body").append(this.cylinder);
   this.cylinder.css({"width":4,"height":15,"background-color":"red","top":this.cHeight,"left":this.eventLeft});
   this.cylinder.animate({top:this.eventTop},600,function(){
    $(this).remove();
    _that.createFlower();
   })
  },
  createFlower : function(){ //创建很多很多的烟花哇!!
   /*烟花效果
   *1.烟花是很多个DIV构成
   *2.每个烟花的颜色不一样
   *3.烟花的位置也不一样
   *4.烟花散开方向不一样
   *5.烟花有下坠感觉
   */
   //通过循环可以创建你想要的烟花啦!!!
   var _that = this;
   for(var i = 0 ; i < 30; i++ ){
    $("body").append($("<div class='flower'></div>"));
   };
   $(".flower").css({"width":3,"height":3,"top":this.eventTop,"left":this.eventLeft});
   $(".flower").each(function(index, element) {
    var $this = $(this);
    var yhX = Math.random()*400-200;
    var yhY = Math.random()*600-300;
    _that.changeColor();
    $this.css({"background-color":"#"+_that.randomColor,"width":3,"height":3}).animate({"top":_that.eventTop-yhY,"left":_that.eventLeft-yhX},500);//散开
    for(var i=0;i<30;i++){
     //判断鼠标点击时的右边烟花还是左边烟花
     if(yhX<0){
      _that.downPw($this,"+");//右下坠
     }else{
      _that.downPw($this,"-");//左下坠
     }
    }
   });     
  },
  changeColor : function(){
   /*烟花的颜色是随机的,而且是用16进制表示色值,所以用随机数结合16进制;
   *16进制的最大值ffffff,转换成十进制16777215;
   *Math.random()*16777215公式可以得到0-16777215之间的数,因为是小数,所以要用到取整;
   *Math.ceil(Math.random()*16777215)生成一个在颜色值范围内的,随机的十进制值;
   *Math.random()*9+1公式可以得到1-10之间的数,以此类推
   *.toString(16)方法,是把得到的十进制,转换成16进制,也就是随机的颜色值了;
   */    
   this.randomColor = "";
   this.randomColor = Math.ceil(Math.random()*16777215).toString(16)//;
   //当这个产生的随机的颜色值,不足6位数的进候,需要补齐,又不改变其值,所以要在这个数的前面加零;
   while(this.randomColor.length<6){
    this.randomColor = "0"+this.randomColor;
   }
  },
  downPw : function(ele,type){ //烟花下坠啦 !!!!
   ele.animate({"top":"+=30","left":type+"=4"},50,function(){
     setTimeout(function(){ele.remove()},2000);
   })
  }
 };
 firWorks.init();
</script>

</body>
</html>

更多JavaScript精彩特效分享给大家:

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

jQuery 相关文章推荐
Jquery-data的三种用法
Apr 18 jQuery
jQuery的时间datetime控件在AngularJs中的使用实例(分享)
Aug 17 jQuery
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
关于jquery layui弹出层的使用方法
Apr 21 jQuery
jQuery实现图片上传预览效果功能完整实例【测试可用】
May 28 jQuery
jquery.tagsinput.js实现记录checkbox勾选的顺序
Sep 21 jQuery
jQuery 选择器用法基础入门示例
Jan 04 jQuery
JQuery获得内容和属性方法解析
May 30 jQuery
JQuery实现折叠式菜单的详细代码
Jun 03 jQuery
jQuery 移除事件的方法
Jun 20 jQuery
JQuery基于FormData异步提交数据文件
Sep 01 jQuery
使用jquery实现轮播图效果
Jan 02 jQuery
jquery实现垂直手风琴菜单
Mar 04 #jQuery
js与jquery获取input输入框中的值实例讲解
Feb 27 #jQuery
jquery实现直播视频弹幕效果
Feb 25 #jQuery
jquery制作的移动端购物车效果完整示例
Feb 24 #jQuery
jquery实现的放大镜效果示例
Feb 24 #jQuery
jquery向后台提交数组的代码分析
Feb 20 #jQuery
jquery实现垂直手风琴导航栏
Feb 18 #jQuery
You might like
Terran剧情介绍
2020/03/14 星际争霸
利用PHP生成静态HTML文档的原理
2012/10/29 PHP
PHP提高编程效率的20个要点
2015/09/23 PHP
PHP封装的数据库保存session功能类
2016/07/11 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
JS input文本框禁用右键和复制粘贴功能的代码
2010/04/15 Javascript
基于Jquery的简单图片切换效果
2011/01/06 Javascript
JavaScript中最简洁的编码html字符串的方法
2014/10/11 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
深入理解JS addLoadEvent函数
2016/05/20 Javascript
深入理解事件冒泡(Bubble)和事件捕捉(capture)
2016/05/28 Javascript
原生JS实现幻灯片
2017/02/22 Javascript
vue2.0学习之axios的封装与vuex介绍
2018/05/28 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:11:21]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第一场 3月6日
2021/03/11 DOTA
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
Django实现自定义404,500页面教程
2017/03/26 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
2018/10/29 Python
python实现字符串加密成纯数字
2019/03/19 Python
PyQt5 实现给窗口设置背景图片的方法
2019/06/13 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
浅谈python中频繁的print到底能浪费多长时间
2020/02/21 Python
500行python代码实现飞机大战
2020/04/24 Python
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
凯撒娱乐:Caesars Entertainment
2018/02/23 全球购物
任意存:BOXFUL
2018/05/21 全球购物
Expedia西班牙:预订酒店、机票、旅行和廉价度假套餐
2019/04/10 全球购物
英语课前三分钟演讲稿
2014/08/19 职场文书
机械制造专业大学生自我鉴定
2014/09/19 职场文书
先进教育工作者事迹材料
2014/12/23 职场文书
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python