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.form.js异步提交表单详解
Apr 25 jQuery
jQuery序列化后的表单值转换成Json
Jun 16 jQuery
jquery单击文字或图片内容放大并居中显示
Jun 23 jQuery
简单实现jQuery轮播效果
Aug 18 jQuery
jQuery实现checkbox即点即改批量删除及中间遇到的坑
Nov 11 jQuery
jquery中done和then的区别(详解)
Dec 19 jQuery
jQuery插件jsonview展示json数据
May 26 jQuery
jQuery实现菜单的显示和隐藏功能示例
Jul 24 jQuery
jQuery层叠选择器用法实例分析
Jun 28 jQuery
Jquery异步上传文件代码实例
Nov 13 jQuery
jquery 插件重新绑定的处理方法分析
Nov 23 jQuery
jquery更改元素属性attr()方法操作示例
May 22 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/06/09 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
PHP Laravel 上传图片、文件等类封装
2017/08/16 PHP
jQuery 选择器理解
2010/03/16 Javascript
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
Javascript this 的一些学习总结
2012/08/31 Javascript
不用锚点也可以平滑滚动到页面的指定位置实现代码
2013/05/08 Javascript
window.opener用法和用途实例介绍
2013/08/19 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
JQuery ztree 异步加载实例讲解
2016/02/25 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
jquery实现界面无刷新加载登陆注册
2016/07/30 Javascript
Bootstrap模态框水平垂直居中与增加拖拽功能
2016/11/09 Javascript
Vue.js 递归组件实现树形菜单(实例分享)
2016/12/21 Javascript
Angular2 父子组件数据通信实例
2017/06/22 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
解决vue router使用 history 模式刷新后404问题
2017/07/19 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
vue修改Element的el-table样式的4种方法
2020/09/17 Javascript
实例讲解Python中函数的调用与定义
2016/03/14 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
PyQt5实现QLineEdit添加clicked信号的方法
2019/06/25 Python
ML神器:sklearn的快速使用及入门
2019/07/11 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
python实现画图工具
2020/08/27 Python
详解python中的异常和文件读写
2021/01/03 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
教育科研先进个人材料
2014/01/26 职场文书
护理专业自我鉴定
2014/01/30 职场文书
水利水电建筑施工应届生求职信
2014/07/04 职场文书
审计局2014法制宣传日活动总结
2014/11/01 职场文书
2016年重阳节慰问信
2015/12/01 职场文书
交通安全学习心得体会
2016/01/18 职场文书
html输入两个数实现加减乘除功能
2021/07/01 HTML / CSS
Python3中最常用的5种线程锁实例总结
2021/07/07 Python