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 相关文章推荐
在IE6下发生Internet Explorer cannot open the Internet site错误
Jun 21 Javascript
js替代copy(示例代码)
Nov 27 Javascript
javascript对JSON数据排序的3个例子
Apr 12 Javascript
PHP实现的各种中文编码转换类分享
Jan 23 Javascript
JavaScript实现广告的关闭与显示效果实例
Jul 02 Javascript
自己动手写的jquery分页控件(非常简单实用)
Oct 28 Javascript
javascript和jQuery实现网页实时聊天的ajax长轮询
Jul 20 Javascript
jQuery ajax读取本地json文件的实例
Oct 31 jQuery
极简主义法编写JavaScript类
Nov 02 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
Jan 07 Javascript
vue全局使用axios的操作
Sep 08 Javascript
使用refresh_token实现无感刷新页面
Apr 26 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的一个登录的类 [推荐]
2007/03/16 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
微信公众平台网页授权获取用户基本信息中授权回调域名设置的变动
2014/10/21 PHP
基于php双引号中访问数组元素报错的解决方法
2018/02/01 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
提高 DHTML 页面性能
2006/12/25 Javascript
jQuery动态添加 input type=file的实现代码
2012/06/14 Javascript
jQuery图片的展开和收缩实现代码
2013/04/16 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
利用javascript判断文件是否存在
2013/12/31 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
js简单抽奖代码
2015/01/16 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
jQuery实现自动调整字体大小的方法
2015/06/15 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
详解用webpack把我们的业务模块分开打包的方法
2017/07/20 Javascript
Vuejs 实现简易 todoList 功能 与 组件实例代码
2018/09/10 Javascript
vue打包相关细节整理(小结)
2018/09/28 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
vue中动态select的使用方法示例
2019/10/28 Javascript
Vue vm.$attrs使用场景详解
2020/03/08 Javascript
Python实现高效求解素数代码实例
2015/06/30 Python
Python在Windows和在Linux下调用动态链接库的教程
2015/08/18 Python
python判断文件夹内是否存在指定后缀文件的实例
2019/06/10 Python
Django restframework 框架认证、权限、限流用法示例
2019/12/21 Python
python内打印变量之%和f的实例
2020/02/19 Python
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
俄罗斯EPL钻石珠宝店:ЭПЛ
2019/10/22 全球购物
文件中有一组整数,要求排序后输出到另一个文件中
2012/01/04 面试题
人力管理专业毕业生求职信
2014/02/27 职场文书
三八妇女节活动主持词
2014/03/17 职场文书
2015年公务员试用期工作总结
2015/05/28 职场文书