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 相关文章推荐
15条JavaScript最佳实践小结
Aug 09 Javascript
Javascript 跨域知识详细介绍
Oct 30 Javascript
基于JavaScript实现Tab选项卡切换效果
Nov 24 Javascript
jquery删除数组中重复元素
Dec 05 Javascript
jQuery插件MovingBoxes实现左右滑动中间放大图片效果
Feb 28 Javascript
前端开发之CSS原理详解
Mar 11 Javascript
原生js编写2048小游戏
Mar 17 Javascript
详解React服务端渲染从入门到精通
Mar 28 Javascript
图解javascript作用域链
May 27 Javascript
element el-tree组件的动态加载、新增、更新节点的实现
Feb 27 Javascript
JS 图片压缩原理与实现方法详解
Apr 29 Javascript
详解如何使用Node.js实现热重载页面
May 06 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读取目录下所有文件的代码
2008/01/07 PHP
解析wamp5下虚拟机配置文档
2013/06/27 PHP
laravel 解决后端无法获取到前端Post过来的值问题
2019/10/22 PHP
javascript 写类方式之十
2009/07/05 Javascript
初识JQuery 实例一(first)
2011/03/16 Javascript
jquery ajax同步异步的执行最终解决方案
2013/04/26 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
jquery实现漫天雪花飞舞的圣诞祝福雪花效果代码分享
2015/08/20 Javascript
Three.js学习之几何形状
2016/08/01 Javascript
AngularJS基础 ng-srcset 指令简单示例
2016/08/03 Javascript
JQuery PHP图片在线裁剪实例
2020/07/27 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
vue.js实现请求数据的方法示例
2017/02/07 Javascript
JavaScript正则获取地址栏中参数的方法
2017/03/02 Javascript
详解javascript常用工具类的封装
2018/01/30 Javascript
使用JS代码实现俄罗斯方块游戏
2018/08/03 Javascript
Element el-button 按钮组件的使用详解
2021/02/01 Javascript
python多进程操作实例
2014/11/21 Python
Python网络爬虫实例讲解
2016/04/28 Python
对python Tkinter Text的用法详解
2018/10/11 Python
使用IDLE的Python shell窗口实例详解
2019/11/19 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
HTML5文档结构标签
2017/04/21 HTML / CSS
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
英国奢侈皮具品牌:Aspinal of London
2018/09/02 全球购物
精彩的大学生自我评价
2013/11/17 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
经典英文广告词
2014/03/18 职场文书
彩色的翅膀教学反思
2014/04/25 职场文书
法制宣传标语
2014/06/23 职场文书
建党伟业电影观后感
2015/06/01 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
python利用while求100内的整数和方式
2021/11/07 Python
什么是动态刷新率DRR? Windows11动态刷新率功能介绍
2021/11/21 数码科技
Python tensorflow卷积神经Inception V3网络结构
2022/05/06 Python