JS实现网页烟花动画效果


Posted in Javascript onMarch 10, 2020

原生js实现放烟花效果,点击鼠标,然后向四周扩散,最后自由落体效果!最简单的方法实现!

效果图:

JS实现网页烟花动画效果

CSS代码:

*{
 padding: 0px;
 margin: 0px;
 background: #000;
 }
 .firworks{
 width: 6px;
 height: 6px;
 position: absolute;
 }

js代码:

<script type="text/javascript">
//封装一个颜色随机的效果
 function randomColor(){
 var color = "rgb("
 var r = parseInt(Math.random()*256);
 var g = parseInt(Math.random()*256);
 var b = parseInt(Math.random()*256);
 color = color+r+","+g+","+b+")";
 return color; 
 }
//创建一个制造烟花的构造函数,第一个参数为元素,第二参数为初始x轴位置,第三参数为y轴位置。
 function Fireworks(Div,x,y){ 
 Div.style.backgroundColor=randomColor(); //给烟花添加背景色
 Div.className="firworks"; //添加一个class
 document.body.appendChild(Div);
 Div.style.left=x+"px"; //把鼠标点击坐标给div
 Div.style.top=y+"px";
 var speedX = (parseInt(Math.random()*2) == 0 ? 1 : -1)*parseInt(Math.random()*16 + 1); //三目运算符随机移动方向,概率50%,为1时往正方向移动,负1时往反方向移动第二个随机数随机速度快慢
 var speedY = (parseInt(Math.random()*2) == 0 ? 1 : -1)*parseInt(Math.random()*20 + 1);
 this.move=function(){
 var i = 3;
 var time1=setInterval(function(){
 i++;
 Div.style.left=Div.offsetLeft+speedX+"px"; 
 Div.style.top=Div.offsetTop+speedY+i+"px"; //当i+speedY>0时,烟花朝下运动。
 if(Div.offsetLeft+Div.offsetWidth>window.innerWidth|| Div.offsetLeft<2 || Div.offsetTop+Div.offsetHeight>window.innerHeight || Div.offsetTop<2 ){
 Div.remove(); //移动出可视区域记得删除div和清除定时器
 clearInterval(time1);
 }
 },30);
 } 
 }
document.οnclick=function (e){
 var evt=e||window.event; //兼容性处理
 for(var i=0;i<80;i++){ //随机烟花的数量
 var div=document.createElement("div");
 var b=new Fireworks(div,evt.pageX,evt.pageY);
 b.move();
 }
}
</script>

更多JavaScript精彩特效分享给大家:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 强制类型转换函数
May 17 Javascript
Extjs学习笔记之九 数据模型(上)
Jan 11 Javascript
javascript闭包的理解和实例
Aug 12 Javascript
js获取图片大小的函数代码
Sep 20 Javascript
javascript解决innerText浏览器兼容问题思路代码
May 17 Javascript
jQuery中triggerHandler()方法用法实例
Jan 19 Javascript
javascript动画算法实例分析
Jul 31 Javascript
jquery中ajax处理跨域的三大方式
Jan 05 Javascript
bootstrap按钮插件(Button)使用方法解析
Jan 13 Javascript
vue如何根据网站路由判断页面主题色详解
Nov 02 Javascript
详解javascript对数组和json数组的操作
Apr 15 Javascript
基于js实现判断浏览器类型代码实例
Jul 17 Javascript
keep-alive不能缓存多层级路由菜单问题解决
Mar 10 #Javascript
JS关闭子窗口并且刷新上一个窗口的实现示例
Mar 10 #Javascript
Vue动态加载图片在跨域时无法显示的问题及解决方法
Mar 10 #Javascript
Vue项目打包压缩的实现(让页面更快响应)
Mar 10 #Javascript
vue实现瀑布流组件滑动加载更多
Mar 10 #Javascript
JavaScript代理模式原理与用法实例详解
Mar 10 #Javascript
JavaScript命令模式原理与用法实例详解
Mar 10 #Javascript
You might like
PHP在XP下IIS和Apache2服务器上的安装
2006/09/05 PHP
关于尾递归的使用详解
2013/05/02 PHP
JavaScript 节点操作 以及DOMDocument属性和方法
2007/12/06 Javascript
JavaScipt基本教程之JavaScript语言的基础
2008/01/16 Javascript
jQuery DOM操作小结与实例
2010/01/07 Javascript
jquery使用ColorBox弹出图片组浏览层实例演示
2013/03/14 Javascript
快速移动鼠标触发问题及解决方法(ECharts外部调用保存为图片操作及工作流接线mouseenter和mouseleave)
2016/08/29 Javascript
js判断价格,必须为数字且不能为负数的实现方法
2016/10/07 Javascript
JS遍历对象属性的方法示例
2017/01/10 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
2017/01/23 Javascript
JavaScript在控件上添加倒计时功能的实现代码
2017/07/04 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
360doc网站不登录就无法复制内容的解决方法
2018/01/27 Javascript
快速了解vue-cli 3.0 新特性
2018/02/28 Javascript
Vue-cli@3.0 插件系统简析
2018/09/05 Javascript
小程序测试后台服务的方法(ngrok)
2019/03/08 Javascript
Vue使用screenfull实现全屏效果
2020/09/17 Javascript
Python实现的几个常用排序算法实例
2014/06/16 Python
python实现根据图标提取分类应用程序实例
2014/09/28 Python
分析Python中解析构建数据知识
2018/01/20 Python
python增加矩阵维度的实例讲解
2018/04/04 Python
对Python中内置异常层次结构详解
2018/10/18 Python
python中判断文件结束符的具体方法
2020/08/04 Python
一波HTML5 Canvas基础绘图实例代码集合
2016/02/28 HTML / CSS
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
大学学年自我鉴定
2013/10/28 职场文书
个人自荐书
2013/12/20 职场文书
七年级地理教学反思
2014/01/26 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
保护环境的宣传语
2015/07/13 职场文书
总经理年会致辞
2015/07/29 职场文书
实用求职信模板范文
2019/05/13 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android