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 validata插件实现方法
Jun 25 jQuery
详解jquery选择器的原理
Aug 01 jQuery
jquery动态赋值id与动态取id方法示例
Aug 21 jQuery
zTree jQuery 树插件的使用(实例讲解)
Sep 25 jQuery
jQuery+CSS实现的标签页效果示例【测试可用】
Aug 14 jQuery
jQuery中常用动画效果函数知识点整理
Aug 19 jQuery
jQuery实现的淡入淡出图片轮播效果示例
Aug 29 jQuery
jquery.tagsinput.js实现记录checkbox勾选的顺序
Sep 21 jQuery
jQuery轮播图功能制作方法详解
Dec 03 jQuery
jQuery 淡入/淡出效果函数用法分析
May 19 jQuery
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
jQuery使用hide()、toggle()函数实现相机品牌展示隐藏功能
Jan 29 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新手上路(十二)
2006/10/09 PHP
PHP 字符串 小常识
2009/06/05 PHP
php生成缩略图示例代码分享(使用gd库实现)
2014/01/20 PHP
php递归方法实现无限分类实例代码
2014/02/28 PHP
PHP程序员不应该忽略的3点
2015/10/09 PHP
phpfpm的作用和用法
2019/10/10 PHP
jquery 事件执行检测代码
2009/12/09 Javascript
js textarea自动增高并隐藏滚动条
2009/12/16 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
微信小程序开发探究
2016/12/27 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
vue element-ui table表格滚动加载方法
2018/03/02 Javascript
用python登录Dr.com思路以及代码分享
2014/06/25 Python
Pyhton中防止SQL注入的方法
2015/02/05 Python
利用Python学习RabbitMQ消息队列
2015/11/30 Python
Python多层装饰器用法实例分析
2018/02/09 Python
pandas 选择某几列的方法
2018/07/03 Python
python实现对csv文件的列的内容读取
2018/07/04 Python
Sanic框架路由用法实例分析
2018/07/16 Python
python2.7实现邮件发送功能
2018/12/12 Python
Python List cmp()知识点总结
2019/02/18 Python
python多线程同步实例教程
2019/08/11 Python
使用python matplotlib 画图导入到word中如何保证分辨率
2020/04/16 Python
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
西班牙汉普顿小姐:购买帆布鞋和太阳镜
2016/10/23 全球购物
美国唇部护理专家:Sara Happ
2019/06/19 全球购物
先进集体获奖感言
2014/02/13 职场文书
祖国在我心中演讲稿400字
2014/05/04 职场文书
大学生党员承诺书
2014/05/20 职场文书
工作时间擅自离岗检讨书
2014/10/24 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
年度考核表个人总结
2015/03/06 职场文书
钱学森观后感
2015/06/04 职场文书
小人国观后感
2015/06/11 职场文书