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 Ajax之$.get()方法和$.post()方法
Oct 12 Javascript
JavaScript的public、private和privileged模式
Dec 28 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
Mar 05 Javascript
js实现字符串的16进制编码不加密
Apr 25 Javascript
c#+jquery实现获取radio和checkbox的值
Sep 12 Javascript
javascript实现数组内值索引随机化及创建随机数组的方法
Aug 10 Javascript
npm国内镜像 安装失败的几种解决方案
Jun 04 Javascript
详解react-router如何实现按需加载
Jun 15 Javascript
vue中的event bus非父子组件通信解析
Oct 27 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
javascript实现fetch请求返回的统一拦截
Dec 22 Javascript
vue print.js打印支持Echarts图表操作
Nov 13 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
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
Thinkphp5框架简单实现钩子(Hook)行为的方法示例
2019/09/03 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
2019/11/21 PHP
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
在myeclipse中如何加入jquery代码提示功能
2014/06/03 Javascript
javascript常用功能汇总
2015/07/05 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
2016/04/20 Javascript
动态加载JavaScript文件的两种方法
2016/04/22 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
Javascript自执行匿名函数(function() { })()的原理浅析
2016/05/15 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
JavaScript中 DOM操作方法小结
2017/04/25 Javascript
微信小程序如何获知用户运行小程序的场景教程
2017/05/17 Javascript
vue的事件绑定与方法详解
2017/08/16 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
2019/01/05 jQuery
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
基于ajax实现上传图片代码示例解析
2020/12/03 Javascript
python将多个文本文件合并为一个文本的代码(便于搜索)
2011/03/13 Python
python自动翻译实现方法
2016/05/28 Python
通过Python爬虫代理IP快速增加博客阅读量
2016/12/14 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
WINDOWS域的具体实现方式是什么
2014/02/20 面试题
回门宴新郎答谢词
2014/01/12 职场文书
沙滩主题婚礼活动策划方案
2014/09/15 职场文书
初中中等生评语
2014/12/29 职场文书
综治目标管理责任书
2015/05/11 职场文书
python字符串常规操作大全
2021/05/02 Python
Pytorch使用shuffle打乱数据的操作
2021/05/20 Python
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js