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 类twitter的文本字数限制带提示效果插件
Apr 16 Javascript
jQuery 源码分析笔记(7) Queue
Jun 19 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
Aug 02 Javascript
jquery鼠标停止移动事件
Dec 21 Javascript
火狐下input焦点无法重复获取问题的解决方法
Jun 16 Javascript
JavaScript tab选项卡插件实例代码
Feb 23 Javascript
Yarn的安装与使用详细介绍
Oct 25 Javascript
Vue.js之slot深度复制详解
Mar 10 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
Aug 14 jQuery
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
Mar 15 Javascript
js实现经典贪吃蛇小游戏
Mar 19 Javascript
vue实现轮播图帧率播放
Jan 26 Vue.js
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
使用PHP和XSL stylesheets转换XML文档
2006/10/09 PHP
PHP4与PHP3中一个不兼容问题的解决方法
2006/10/09 PHP
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
深入浅析php json 格式控制
2015/12/24 PHP
Thinkphp微信公众号支付接口
2016/08/04 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
IE与FireFox的JavaScript兼容问题解决办法
2013/12/31 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
用Jquery.load载入页面实现局部刷新
2014/01/22 Javascript
Javascript核心读书有感之类型、值和变量
2015/02/11 Javascript
Web打印解决方案之普通报表打印功能
2016/08/29 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
bootstrap laydate日期组件使用详解
2017/01/04 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
js微信分享接口调用详解
2019/07/23 Javascript
微信域名检测接口调用演示步骤(含PHP、Python)
2019/12/08 Javascript
vue项目实现减少app.js和vender.js的体积操作
2020/11/12 Javascript
wxpython中自定义事件的实现与使用方法分析
2016/07/21 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
Python Matplotlib库安装与基本作图示例
2019/01/09 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
解决python中用matplotlib画多幅图时出现图形部分重叠的问题
2019/07/07 Python
Python 根据日志级别打印不同颜色的日志的方法示例
2019/08/08 Python
Python爬虫HTPP请求方法有哪些
2020/06/03 Python
Keras 切换后端方式(Theano和TensorFlow)
2020/06/19 Python
python实现计算图形面积
2021/02/22 Python
Cinque网上商店:德国服装品牌
2019/03/17 全球购物
英国在线药房和在线医生:LloydsPharmacy
2019/10/21 全球购物
物业管理个人自我评价
2013/11/08 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
奥巴马英文演讲稿
2014/05/15 职场文书
政治学求职信
2014/06/03 职场文书
关于 Python json中load和loads区别
2021/11/07 Python
mybatis源码解读之executor包语句处理功能
2022/02/15 Java/Android