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 相关文章推荐
Mui使用jquery并且使用点击跳转新窗口的实例
Aug 19 jQuery
JS+jQuery实现注册信息的验证功能
Sep 26 jQuery
jQuery中 DOM节点操作方法大全
Oct 12 jQuery
jQuery EasyUI window窗口使用实例代码
Dec 25 jQuery
jQuery实现文件编码成base64并通过AJAX上传的方法
Apr 12 jQuery
JQuery通过后台获取数据遍历到前台的方法
Aug 13 jQuery
jQuery实现的网站banner图片无缝轮播效果完整实例
Jan 28 jQuery
Jquery的autocomplete插件用法及参数讲解
Mar 12 jQuery
jQuery实现提交表单时不提交隐藏div中input的方法
Oct 08 jQuery
jquery传参及获取方式(两种方式)
Feb 13 jQuery
jQuery实现的上拉刷新功能组件示例
May 01 jQuery
jQuery HTML css()方法与css类实例详解
May 20 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
yii2中的rules 自定义验证规则详解
2016/04/19 PHP
thinkPHP数据库增删改查操作方法实例详解
2016/12/06 PHP
PHP有序表查找之二分查找(折半查找)算法示例
2018/02/09 PHP
为Plesk PHP7启用Oracle OCI8扩展方法总结
2019/03/29 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
javascript学习笔记(六) Date 日期类型
2012/06/19 Javascript
JS判断两个时间大小的示例代码
2014/01/28 Javascript
jQuery中通过ajax的get()函数读取页面的方法
2016/02/29 Javascript
使用javascript插入样式
2016/03/14 Javascript
javascript封装addLoadEvent实现页面同时加载执行多个函数的方法
2016/07/25 Javascript
Bootstrap提示框效果的实例代码
2017/07/12 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
JavaScript判断对象和数组的两种方法
2019/05/31 Javascript
[38:51]2014 DOTA2国际邀请赛中国区预选赛 Orenda VS LGD-CDEC
2014/05/22 DOTA
pyramid配置session的方法教程
2013/11/27 Python
用Python编写一个简单的Lisp解释器的教程
2015/04/03 Python
Python 中的with关键字使用详解
2016/09/11 Python
pytorch permute维度转换方法
2018/12/14 Python
python 遍历列表提取下标和值的实例
2018/12/25 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
python一些性能分析的技巧
2020/08/30 Python
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
货代行业个人求职简历的自我评价
2013/10/22 职场文书
应届行政管理专业个人自我评价
2013/12/28 职场文书
小学安全教育材料
2014/02/17 职场文书
药品营销专业毕业生自荐信
2014/07/02 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
2014年超市员工工作总结
2014/11/18 职场文书
小学安全工作总结2015
2015/05/18 职场文书
中学教师教学工作总结
2015/08/13 职场文书
早恋主题班会
2015/08/14 职场文书
2015年学校消防安全工作总结
2015/10/14 职场文书
golang goroutine顺序输出方式
2021/04/29 Golang
Win10 heic文件怎么打开 ? Win10 heic文件打开教程
2022/04/06 数码科技