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 相关文章推荐
JQuery标签页效果实例详解
Dec 24 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
Jan 26 Javascript
jQuery实现鼠标悬停3d菜单展开动画效果
Jan 19 Javascript
微信小程序 swiper制作tab切换实现附源码
Jan 21 Javascript
前端MVVM框架解析之双向绑定
Jan 24 Javascript
微信小程序中使用wxss加载图片并实现动画效果
Aug 13 Javascript
vue-router权限控制(简单方式)
Oct 29 Javascript
微信小程序 slot踩坑的解决
Apr 01 Javascript
原生JS实现图片懒加载之页面性能优化
Apr 26 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
Aug 14 Javascript
js实现3D粒子酷炫动态旋转特效
Sep 13 Javascript
OpenLayers3实现测量功能
Sep 25 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中删除变量时unset()和null的区别分析
2011/01/27 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
如何使用jquery动态加载js,css文件实现代码
2013/04/03 Javascript
js利用事件的阻止冒泡实现点击空白模态框的隐藏
2014/01/24 Javascript
用js将内容复制到剪贴板兼容浏览器
2014/03/18 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
JS获取数组最大值、最小值及长度的方法
2015/11/24 Javascript
Bootstrap图片轮播组件使用实例解析
2016/06/30 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
javascript判断firebug是否开启的方法
2016/11/23 Javascript
JavaScript实现图片拖曳效果
2017/09/08 Javascript
Vue组件之Tooltip的示例代码
2017/10/18 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
基于Vue2的独立构建与运行时构建的差别(详解)
2017/12/06 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
jQuery选择器选中最后一个元素,倒数第二个元素操作示例
2018/12/10 jQuery
vue实现的仿淘宝购物车功能详解
2019/01/27 Javascript
微信小程序获取地理位置及经纬度授权代码实例
2019/09/18 Javascript
详解如何在JS代码中消灭for循环
2019/12/11 Javascript
Python中编写ORM框架的入门指引
2015/04/29 Python
python协程之动态添加任务的方法
2019/02/19 Python
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
YesStyle美国/全球:购买亚洲时装、美容化妆品和生活百货
2017/01/16 全球购物
英国打印机墨水和碳粉商店:Printerinks
2017/06/30 全球购物
比驿:全球酒店比价网
2018/06/20 全球购物
小学生考试获奖感言
2014/01/30 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
小学关爱留守儿童活动方案
2014/08/25 职场文书
戒毒悔改检讨书
2014/09/21 职场文书
违反单位工作制度检讨书
2014/10/25 职场文书
房产公证书格式
2015/01/26 职场文书
2015党建工作简报
2015/07/21 职场文书
python 如何获取页面所有a标签下href的值
2021/05/06 Python
Go语言特点及基本数据类型使用详解
2022/03/21 Golang
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA