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平滑滚动到顶部插件使用详解
May 08 jQuery
jQuery Form插件使用详解_动力节点Java学院整理
Jul 17 jQuery
jQuery实现全选、反选和不选功能
Aug 16 jQuery
jquery动态添加以及遍历option并获取特定样式名称的option方法
Jan 29 jQuery
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
May 31 jQuery
jQuery实现为动态添加的元素绑定事件实例分析
Sep 07 jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 jQuery
Jquery的Ajax技术使用方法
Jan 21 jQuery
JQuery样式与属性设置方法分析
Dec 07 jQuery
jQuery 选择器用法实例分析【prev + next】
May 22 jQuery
jQuery实现简单飞机大战
Jul 05 jQuery
jQuery实现鼠标拖拽登录框移动效果
Sep 13 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通用防注入程序 推荐
2011/02/26 PHP
php实现将字符串按照指定距离进行分割的方法
2015/03/14 PHP
WampServer搭建php环境时遇到的问题汇总
2015/07/23 PHP
PHP常见数组函数用法小结
2016/03/21 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
Centos7 Yum安装PHP7.2流程教程详解
2019/07/02 PHP
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
jquery 插件学习(五)
2012/08/06 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
子页向父页传值示例
2013/11/27 Javascript
JQuery select(下拉框)操作方法汇总
2015/04/15 Javascript
jQuery表格的维护和删除操作
2017/02/03 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
浅谈使用React.setState需要注意的三点
2017/12/18 Javascript
webpack4与babel配合使es6代码可运行于低版本浏览器的方法
2018/10/12 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
详解一个小实例理解js原型和继承
2019/04/24 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
python正则表达式抓取成语网站
2013/11/20 Python
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
Python实现获取命令行输出结果的方法
2017/06/10 Python
Python中循环引用(import)失败的解决方法
2018/04/22 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
Macbook安装Python最新版本、GUI开发环境、图像处理、视频处理环境详解
2020/02/17 Python
使用jupyter notebook直接打开.md格式的文件
2020/04/10 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
L*SPACE官网:比基尼、泳装和度假服装
2019/03/18 全球购物
音乐专业自荐信
2014/02/07 职场文书
党员四风问题对照检查材料思想汇报
2014/09/16 职场文书
大学生实习证明范本
2014/09/19 职场文书
滞留工资返还协议书
2014/10/19 职场文书
残联2016年全国助残日活动总结
2016/04/01 职场文书
初中运动会闭幕词范本3篇
2019/12/09 职场文书
MySQL 使用自定义变量进行查询优化
2021/05/14 MySQL