JS实现超炫网页烟花动画效果的方法


Posted in Javascript onMarch 02, 2015

本文实例讲述了JS实现超炫网页烟花动画效果的方法。分享给大家供大家参考。具体分析如下:

非常炫的使用JS实现的一个网页烟花燃放动画效果,能适应JS做出这样的动画来

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

<head>

<title>超炫网页烟花效果</title>

</head>

<style type="text/css">

.fire{display:block; overflow:hidden; font-size:12px; position:absolute};

body{overflow:hidden; background:#000}

html{overflow:hidden; background:#000}

</style>

<body>

</body>

<script type="text/javascript">

var Fire = function(r, color) {

this.radius = r || 12;

this.color = color;

this.xpos = 0;

this.ypos = 0;

this.zpos = 0;

this.vx = 0;

this.vy = 0;

this.vz = 0;

this.mass = 1;

this.x =0;

this.y=0;

this.p = document.createElement("span");

this.p.className = "fire";

this.p.innerHTML = "*";

this.p.style.fontSize = this.radius + "px";

this.p.style.color = "#" + this.color;

}

Fire.prototype = {

append: function(parent) {

parent.appendChild(this.p);

},

setSize: function(scale) {

this.p.style.fontSize = this.radius * scale + "px";

},

setPosition:function(x, y) {

this.p.style.left = x + "px";

this.p.style.top =  y + "px";

},

setVisible: function(b) {

this.p.style.display = b ? "block" : "none";

}

}

var fireworks = function() {

var fires = new Array();

var count = 150;

var fl = 250;

var vpx = 500;

var vpy = 300;

var gravity = .5;

var floor = 200;

var bounce = -.8;

var timer;

var wind = ((Math.floor(Math.random()*3) + 3)/10)*(Math.random()*2 - 1 > 0 ? 1 : -1)*.25;

var wpos = 0;

var wcount;

return {

init: function() {

wcount = 50 + Math.floor(Math.random() * 100);

for (var i=0; i<count; i++) {

var color = 0xFF0000;

color = (Math.random() * 0xFFFFFF).toString(16).toString().split(".")[0];

while(color.length < 6) {

color = "0" + color;

}

var fire = new Fire(12, color);

fires.push(fire);

fire.ypos = -100;

fire.vz = Math.random() * 6 - 3;

fire.vx = (Math.random()*2 - 1)*2 ;

fire.vy = Math.random()*-15 - 15;

fire.x = 500

fire.y = 600;

fire.append(document.body);

}

var that = this;

timer = setInterval(function() {

wpos++;

if (wpos >= wcount) {

wpos = 0;

wcount = 50 + Math.floor(Math.random() * 100);

wind = ((Math.floor(Math.random()*3) + 3)/10)*(Math.random()*2 - 1 > 0 ? 1 : -1)*.25;

}

for (var i=0;i<count; i++) {

that.move(fires[i]);

}

}, 30);

},

move: function(fire) {

fire.vy += gravity;

fire.x += fire.vx;

fire.y += fire.vy;

fire.vx += wind;

fire.setPosition(fire.x, fire.y);

if (fire.x < 0 || fire.x >1000 || fire.y  < 0 || fire.y  > 600) {

fire.vx = (Math.random()*2 - 1)*2;

fire.vy = Math.random()*-15 - 15;

fire.x = 500;

fire.y = 600;

fire.setPosition(fire.x, fire.y);

}

}

}

}

fireworks().init();

</script>

</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jQuery查询数据返回object和字符串影响原因是什么
Aug 09 Javascript
input输入框鼠标焦点提示信息
Mar 17 Javascript
JS面向对象编程详解
Mar 06 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
Jun 12 Javascript
微信小程序模板(template)使用详解
Jan 31 Javascript
解决koa2 ctx.render is not a function报错问题
Aug 07 Javascript
Javascript中绑定click事件的四种方式介绍
Oct 26 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
Dec 12 Javascript
微信小程序时间标签和时间范围的联动效果
Feb 15 Javascript
js实现拖动缓动效果
Jan 13 Javascript
Vue项目开发常见问题和解决方案总结
Sep 11 Javascript
JavaScript 如何在浏览器中使用摄像头
Dec 02 Javascript
ECMAScript 5严格模式(Strict Mode)介绍
Mar 02 #Javascript
Javascript中使用A标签获取当前目录的绝对路径方法
Mar 02 #Javascript
JavaScript日期类型的一些用法介绍
Mar 02 #Javascript
了解Javascript的模块化开发
Mar 02 #Javascript
JS实现的4种数字千位符格式化方法分享
Mar 02 #Javascript
js实现图片漂浮效果的方法
Mar 02 #Javascript
ECMAScript 5中的属性描述符详解
Mar 02 #Javascript
You might like
《魔兽争霸3:重制版》更新 多项视觉效果调整
2020/05/04 魔兽争霸
Ubuntu下安装PHP的mongodb扩展操作命令
2015/07/04 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
Javscript删除数组中指定元素并返回新数组
2014/03/06 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
DWR3 访问WEB元素的两种方法实例详解
2017/01/03 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
webpack实现热加载自动刷新的方法
2017/07/30 Javascript
React中使用collections时key的重要性详解
2017/08/07 Javascript
JS实现百度网盘任意文件强制下载功能
2018/08/31 Javascript
js轮播图之旋转木马效果
2020/10/13 Javascript
基于p5.js 2D图像接口的扩展(交互实现)
2020/11/30 Javascript
python自动发送邮件脚本
2018/06/20 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
Python3.4学习笔记之列表、数组操作示例
2019/03/01 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
CSS Grid布局教程之浏览器开启CSS Grid Layout汇总
2014/12/30 HTML / CSS
浅谈HTML5新增及移除的元素
2016/06/27 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
全世界最美丽的四星和五星级酒店预订:Prestigia.com
2017/11/15 全球购物
公司拓展活动方案
2014/02/13 职场文书
楼面经理岗位职责范本
2014/02/18 职场文书
医院信息公开实施方案
2014/05/09 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
大学生毕业求职信
2014/06/12 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
家装业务员岗位职责
2015/04/03 职场文书
入党介绍人意见范文
2015/06/01 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python