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中关于节点内容加强
Apr 11 Javascript
验证控件与Button的OnClientClick事件详细解析
Dec 04 Javascript
jQuery 仿百度输入标签插件附效果图
Jul 04 Javascript
$.each遍历对象、数组的属性值并进行处理
Jul 18 Javascript
node.js中的fs.writeSync方法使用说明
Dec 15 Javascript
jQuery使用之标记元素属性用法实例
Jan 19 Javascript
jQuery实现的输入框选择时间插件用法实例
Feb 28 Javascript
跟我学习javascript的arguments对象
Nov 16 Javascript
解决前端跨域问题方案汇总
Nov 20 Javascript
BootStrap Datepicker 插件修改为默认中文的实现方法
Feb 10 Javascript
微信小程序实现页面监听自定义组件的触发事件
Nov 01 Javascript
JS封装cavans多种滤镜组件
Feb 15 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连接Oracle数据库
2006/10/09 PHP
真正的ZIP文件操作类(php)
2007/07/21 PHP
php中随机显示图片的函数代码
2011/06/23 PHP
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
php中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
探讨GDFONTPATH能否被winxp下的php支持
2013/06/21 PHP
php实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
100多行PHP代码实现socks5代理服务器[2]
2016/05/05 PHP
php实现的rc4加密解密类定义与用法示例
2018/08/16 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
取选中的radio的值
2010/01/11 Javascript
用nodejs访问ActiveX对象,以操作Access数据库为例。
2011/12/15 NodeJs
Express.JS使用详解
2014/07/17 Javascript
js在IE与firefox的差异集锦
2014/11/11 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
百度地图api如何使用
2015/08/03 Javascript
jQuery弹簧插件编写基础之“又见弹窗”
2015/12/11 Javascript
jquery按回车键实现表单提交的简单实例
2016/05/25 Javascript
javascript 广告移动特效的实现代码
2016/06/25 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
微信小程序 下拉列表的实现实例代码
2017/03/08 Javascript
Vue波纹按钮组件制作
2018/04/30 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
[43:32]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS NewBee第一场
2014/05/26 DOTA
python使用fcntl模块实现程序加锁功能示例
2017/06/23 Python
Python爬虫之Selenium警告框(弹窗)处理
2020/12/04 Python
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
计算机专业毕业生自我鉴定
2014/01/16 职场文书
草船借箭教学反思
2014/02/03 职场文书
公益广告宣传方案
2014/02/28 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
酒店七夕情人节活动策划方案
2014/08/24 职场文书
python 如何将两个实数矩阵合并为一个复数矩阵
2021/05/19 Python
MySQL创建表操作命令分享
2022/03/25 MySQL