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 EasyUI 组件加上“清除”功能实例详解
Apr 11 jQuery
jQuery实现select下拉框获取当前选中文本、值、索引
May 08 jQuery
jQuery UI Draggable + Sortable 结合使用(实例讲解)
Sep 07 jQuery
基于jQuery解决ios10以上版本缩放问题
Nov 03 jQuery
jQuery+ajax读取json数据并按照价格排序示例
Mar 28 jQuery
如何用input标签和jquery实现多图片的上传和回显功能
May 16 jQuery
jQuery实现表单动态添加数据并提交的方法
Jul 19 jQuery
使用jquery模拟a标签的click事件无法实现跳转的解决
Dec 04 jQuery
使用jQuery动态设置单选框的选中效果
Dec 06 jQuery
详解jquery和vue对比
Apr 16 jQuery
基于jQuery实现可编辑的表格
Dec 11 jQuery
jQuery实现简单三级联动效果
Sep 05 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+javascript的日历控件
2009/11/19 PHP
php实现简单的上传进度条
2015/11/17 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
2017/10/06 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
js获取下拉列表框中的value和text的值示例代码
2014/01/11 Javascript
使用jquery.validate自定义方法实现&quot;手机号码或者固话至少填写一个&quot;的逻辑验证
2014/09/01 Javascript
JS实现不规则TAB选项卡效果代码
2015/09/16 Javascript
JS获取子窗口中返回的数据实现方法
2016/05/28 Javascript
json的使用小结
2016/06/08 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
利用node.js如何搭建一个简易的即时响应服务器
2017/05/28 Javascript
基于bootstrap实现多个下拉框同时搜索功能
2017/07/19 Javascript
基于LayUI实现前端分页功能的方法
2017/07/22 Javascript
React中使用UEditor百度富文本的方法
2018/08/22 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
Echarts地图添加引导线效果(labelLine)
2019/09/30 Javascript
[50:58]2018DOTA2亚洲邀请赛3月29日 小组赛A组OpTic VS Newbee
2018/03/30 DOTA
linux系统使用python监控apache服务器进程脚本分享
2014/01/15 Python
python实现向ppt文件里插入新幻灯片页面的方法
2015/04/28 Python
在Python中操作列表之List.append()方法的使用
2015/05/20 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
python 计算数据偏差和峰度的方法
2019/06/29 Python
CSS3之多背景background使用示例
2013/10/18 HTML / CSS
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
英国高级百货公司:Harvey Nichols
2017/01/29 全球购物
动态密码技术
2012/10/18 面试题
证婚人经典证婚词
2014/01/09 职场文书
领导检查欢迎词
2014/01/14 职场文书
2014大学生中国梦主题教育学习思想汇报
2014/09/10 职场文书
幼儿园小班见习报告
2014/10/31 职场文书
校运会通讯稿
2015/07/18 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL
python3 hdf5文件 遍历代码
2021/05/19 Python
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python