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实现tab键进行选择后enter键触发click行为
Mar 29 jQuery
jQuery表单验证之密码确认
May 22 jQuery
jQuery封装placeholder效果实现方法,让低版本浏览器支持该效果
Jul 08 jQuery
jquery radio 动态控制选中失效问题的解决方法
Feb 28 jQuery
jQuery实现form表单序列化转换为json对象功能示例
May 23 jQuery
jQuery中ajax请求后台返回json数据并渲染HTML的方法
Aug 08 jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
jQuery添加新内容的四个常用方法分析【append,prepend,after,before】
Mar 19 jQuery
jquery实现垂直手风琴导航栏
Feb 18 jQuery
JQuery省市联动效果实现过程详解
May 08 jQuery
JQuery通过键盘控制键盘按下与松开触发事件
Aug 07 jQuery
详解jQuery的核心函数和事件处理
Feb 18 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
PHP中文汉字验证码
2007/04/08 PHP
PHP HTML JavaScript MySQL代码如何互相传值的方法分享
2012/09/30 PHP
php简单的留言板与回复功能具体实现
2014/02/19 PHP
php中eval函数的危害与正确禁用方法
2014/06/30 PHP
详解WordPress中创建和添加过滤器的相关PHP函数
2015/12/29 PHP
PHP通过GD库实现验证码功能示例
2019/02/23 PHP
javascript eval和JSON之间的联系
2009/12/31 Javascript
IE bug table元素的innerHTML
2010/01/11 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
vue router使用query和params传参的使用和区别
2017/11/13 Javascript
Node.js如何优雅的封装一个实用函数的npm包的方法
2019/04/29 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
vue点击页面空白处实现保存功能
2019/11/06 Javascript
Bootstrap简单实用的表单验证插件BootstrapValidator用法实例详解
2020/03/29 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
利用python实现简单的邮件发送客户端示例
2017/12/23 Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
2018/08/03 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
详解python数据结构和算法
2019/04/18 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
Python实现计算文件MD5和SHA1的方法示例
2019/06/11 Python
通过实例了解Python异常处理机制底层实现
2020/07/23 Python
美国羊皮公司:Overland
2018/01/15 全球购物
为什么要用EJB
2014/04/17 面试题
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
同事打架检讨书
2014/02/04 职场文书
检讨书1000字
2014/10/11 职场文书
五年级学生评语大全
2014/12/26 职场文书
婚宴父母致辞
2015/07/27 职场文书
写给消防战士们的一封慰问信
2019/10/07 职场文书
导游词之清晏园
2019/11/22 职场文书
如何使JavaScript休眠或等待
2021/04/27 Javascript
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python
Oracle中日期的使用方法实例
2022/07/07 Oracle