电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

JS實現放煙花效果

瀏覽:92日期:2024-05-19 18:05:51

本文實例為大家分享了JS實現放煙花效果的具體代碼,供大家參考,具體內容如下

<!DOCTYPE html><html> <head> <meta charset='UTF-8'> <title>放煙花——欣欣博客</title> <style> html,body{overflow:hidden;} body,div,p{margin:0;padding:0;} body{background:#000;font:12px/1.5 arial;color:#7A7A7A;} .fire { width: 3px; height: 30px; background: white; position: absolute; } .spark { position: absolute; width: 6px; height: 6px; } </style> <script src='http://www.hdgsjgj.cn/bcjs/move.js'></script> <script> οnlοad=function(){ document.οnclick=function(e){ e =e||event; var coord ={ x:e.clientX, y:e.clientY }; new Fire(coord).init().launch(); } function Fire(coord){ var self = this; //初始化 this.init=function(){ this.ball = document.createElement('div'); this.ball.className='fire'; this.ball.style.left = coord.x+'px'; this.ball.style.top= window.innerHeight +'px'; document.body.appendChild(this.ball); return this; } //發射 this.launch=function(){ animate(this.ball,{left:coord.x,top:coord.y,height:3},{callback:function(){ self.explode(); }}); return this; } //爆炸 this.explode=function(){ this.destory(); var count = randomInt(30,50); for(var i =0;i<count;i++){ new Spark(coord).init().parabola(); } } //銷毀 this.destory = function(){ this.ball.remove(); } } function Spark(coord){ var self = this; this.init=function(){ this.box = document.createElement('div'); this.box.className='spark'; this.box.style.backgroundColor='#'+randomColor(); console.log(this.box.style.backgroundColor) this.box.style.left = coord.x+'px'; this.box.style.top = coord.y+'px'; this.box.speedX = randomInt(-20,20); this.box.speedY = randomInt(-20,10); document.body.appendChild(this.box); return this; } this.parabola=function(){ this.timer =setInterval(function(){ if(self.box.offsetTop >window.innerHeight){ clearInterval(self.timer); self.destroy(); return; } self.box.style.left = self.box.offsetLeft + self.box.speedX +'px'; self.box.style.top = self.box.offsetTop +self.box.speedY++ +'px'; },30) } this.destory=function(){ this.box.remove(); } } //隨機整數 function randomInt(min,max){ return Math.round(Math.random()*(max-min)+min); } //隨機顏色 function randomColor(){ var R = Math.round( Math.random()*255 ).toString(16); var G = Math.round( Math.random()*255 ).toString(16); var B = Math.round( Math.random()*255 ).toString(16); return (R.length<2?'0'+R:R) + (G.length<2?'0'+G:G)+ (B.length<2?'0'+B:B); } } </script> </head> <body> </body></html>

move.js

/** * * @param {Object} obj 目標對象 * @param {Object} json 要改變的屬性 * @param {Object} extend {buffer,callback} 當buffer為true時為彈性運動 * callback會在運動結束時,被執行 * animate(obj, {top:500, left: 300}, {callback:function(){}, buffer: true}) */function animate(obj, json, extend){ extend = extend || {}; if(obj.isMoving){ return; } else { stop(); obj.isMoving = true; } //obj = Object.assgin(obj,extend); obj.buffer = extend.buffer; obj.callback = extend.callback; obj.timerlist = {}; //為每一個屬性添加一個定時器 for(var attr in json){ (function(attr){ obj.timerlist[attr] = {speed:0}; obj.timerlist[attr].timer = setInterval(function(){ //首先得到當前值 var iNow = 0; if(attr == 'opacity'){ iNow = getStyle(obj, attr) * 100; } else { iNow = getStyle(obj, attr); } var speed = obj.timerlist[attr].speed; //根據目標值,計算需要的速度 if(obj.buffer==true){ speed += (json[attr] - iNow)/5; speed *= 0.75; } else { speed = (json[attr] - iNow)/5; } //當無限接近目標值時,停止定時器 if(Math.abs(iNow - json[attr]) < 0.5){ clearInterval(obj.timerlist[attr].timer); delete obj.timerlist[attr]; if(getObjLength(obj.timerlist)==0){//所有定時器已停止 stop(); obj.callback ? obj.callback() : ''; } } else { //根據速度,修改當前值 if(attr == 'opacity'){ obj.style.opacity = (iNow+speed)/100; obj.style.filter = ’alpha(opacity=’ + parseFloat(iNow+speed) + ’)’; } else { obj.style[attr] = iNow+speed+'px'; } obj.timerlist[attr].speed = speed; } }, 30); })(attr); } function clearTimer(){ for(var i in obj.timerlist){ clearInterval(obj.timerlist[i]); } } function getStyle(obj, attr){ if(obj.currentStyle){ return isNaN(parseFloat(obj.currentStyle[attr])) ? obj.style[attr]=0 : parseFloat(obj.currentStyle[attr]); } else { return isNaN(parseFloat(getComputedStyle(obj, null)[attr])) ? obj.style[attr]=0 : parseFloat(getComputedStyle(obj, null)[attr]); } } function getObjLength(obj){ var n = 0; for(var i in obj){ n++; } return n; } function stop(){ clearTimer();//清除所有定時器 obj.isMoving = false; }}

更多JavaScript精彩特效分享給大家:

Javascript菜單特效大全

javascript仿QQ特效匯總

JavaScript時鐘特效匯總

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 大巴租车平台承接包车,通勤班车,巴士租赁业务 - 鸿鸣巴士 | 电动垃圾车,垃圾清运车-江苏速利达机车有限公司 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | hc22_hc22价格_hc22哈氏合金—东锜特殊钢 | 制氮设备-变压吸附制氮设备-制氧设备-杭州聚贤气体设备制造有限公司 | 中央空调温控器_风机盘管温控器_智能_液晶_三速开关面板-中央空调温控器厂家 | 物和码官网,物和码,免费一物一码数字化营销SaaS平台 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 | 闪蒸干燥机-喷雾干燥机-带式干燥机-桨叶干燥机-[常州佳一干燥设备] | 首页|专注深圳注册公司,代理记账报税,注册商标代理,工商变更,企业400电话等企业一站式服务-慧用心 | 广域铭岛Geega(际嘉)工业互联网平台-以数字科技引领行业跃迁 | 喷漆房_废气处理设备-湖北天地鑫环保设备有限公司 | 北京森语科技有限公司-模型制作专家-展览展示-沙盘模型设计制作-多媒体模型软硬件开发-三维地理信息交互沙盘 | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 自清洗过滤器,浅层砂过滤器,叠片过滤器厂家-新乡市宇清净化 | 焦作网 WWW.JZRB.COM| 小港信息港-鹤壁信息港 鹤壁老百姓便民生活信息网站 | 软膜天花_软膜灯箱_首选乐创品牌_一站式天花软膜材料供应商! | 紧急泄压人孔_防爆阻火器_阻火呼吸阀[河北宏泽石化] | 安徽控制器-合肥船用空调控制器-合肥家电控制器-合肥迅驰电子厂 安徽净化板_合肥岩棉板厂家_玻镁板厂家_安徽科艺美洁净科技有限公司 | 闪蒸干燥机-喷雾干燥机-带式干燥机-桨叶干燥机-[常州佳一干燥设备] | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 艾乐贝拉细胞研究中心 | 国家组织工程种子细胞库华南分库 | 哈希PC1R1A,哈希CA9300,哈希SC4500-上海鑫嵩实业有限公司 | 废气处理_废气处理设备_工业废气处理_江苏龙泰环保设备制造有限公司 | 西点培训学校_法式西点培训班_西点师培训_西点蛋糕培训-广州烘趣西点烘焙培训学院 | 磁力轮,磁力联轴器,磁齿轮,钕铁硼磁铁-北京磁运达厂家 | 北京晚会活动策划|北京节目录制后期剪辑|北京演播厅出租租赁-北京龙视星光文化传媒有限公司 | 外观设计_设备外观设计_外观设计公司_产品外观设计_机械设备外观设计_东莞工业设计公司-意品深蓝 | 考试试题_试卷及答案_诗词单词成语 - 优易学 | 标策网-专注公司商业知识服务、助力企业发展 | 双舌接地线-PC68数字式高阻计-ZC36|苏海百科 | 新能源汽车电池软连接,铜铝复合膜柔性连接,电力母排-容发智能科技(无锡)有限公司 | 企业彩铃制作_移动、联通、电信集团彩铃上传开通_彩铃定制_商务彩铃管理平台-集团彩铃网 | 气体检测仪-氢气检测仪-可燃气体传感器-恶臭电子鼻-深国安电子 | 自动气象站_农业气象站_超声波气象站_防爆气象站-山东万象环境科技有限公司 | 托利多电子平台秤-高精度接线盒-托利多高精度电子秤|百科 | 注塑机-压铸机-塑料注塑机-卧式注塑机-高速注塑机-单缸注塑机厂家-广东联升精密智能装备科技有限公司 | 品牌策划-品牌设计-济南之式传媒广告有限公司官网-提供品牌整合丨影视创意丨公关活动丨数字营销丨自媒体运营丨数字营销 | 合肥花魁情感婚姻咨询中心_挽回爱情_修复婚姻_恋爱指南 | 废气处理_废气处理设备_工业废气处理_江苏龙泰环保设备制造有限公司 |