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 hashtable 修正版 下载
Dec 30 Javascript
javascript操作css属性
Dec 30 Javascript
开启BootStrap学习之旅
May 04 Javascript
Bootstrap Paginator分页插件使用方法详解
May 30 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
Oct 21 Javascript
遍历json获得数据的几种方法小结
Jan 21 Javascript
jQuery设计思想
Mar 07 Javascript
JS实现列表页面隔行变色效果
Mar 25 Javascript
详解Webpack + ES6 最新环境搭建与配置
Jun 04 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
Apr 14 Javascript
Vue formData实现图片上传
Aug 20 Javascript
vue实现同时设置多个倒计时
May 20 Vue.js
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
一个捕获函数输出的函数
2007/02/14 PHP
一个PHP数组应该有多大的分析
2009/07/30 PHP
PHP最常用的2种设计模式工厂模式和单例模式介绍
2012/08/14 PHP
PHP三元运算的2种写法代码实例
2014/05/12 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
Javascript学习笔记8 用JSON做原型
2010/01/11 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
js获取input标签的输入值实现代码
2013/08/05 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
Javascript获取随机数的实现方法
2016/06/22 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
使用JS实现图片展示瀑布流效果的实例代码
2016/09/12 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
微信小程序城市定位的实现实例(获取当前所在国家城市信息)
2017/05/17 Javascript
微信小程序模板和模块化用法实例分析
2017/11/28 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
微信小程序实现同时上传多张图片
2020/02/03 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
[02:49]2018DOTA2亚洲邀请赛主赛事决赛日战况回顾 Mineski鏖战5局夺得辉耀
2018/04/10 DOTA
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python使用ctypes模块调用windowsapi获取系统版本示例
2014/04/17 Python
在Python的Django框架中加载模版的方法
2015/07/16 Python
python实现kNN算法
2017/12/20 Python
python+selenium实现登录账户后自动点击的示例
2017/12/22 Python
python判断一个数是否能被另一个整数整除的实例
2018/12/12 Python
Python Django中间件,中间件函数,全局异常处理操作示例
2019/11/08 Python
Python 爬取必应壁纸的实例讲解
2020/02/24 Python
Python爬取阿拉丁统计信息过程图解
2020/05/12 Python
Python中logger日志模块详解
2020/08/04 Python
Python SMTP发送电子邮件的示例
2020/09/23 Python
HTML5自定义属性前缀data-及dataset的使用方法(html5 新特性)
2017/08/24 HTML / CSS
HearthSong官网:儿童户外玩具、儿童益智玩具
2017/10/16 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
小学三八妇女节活动方案
2014/03/16 职场文书