亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JS基于面向對象實現的放煙花效果

2019-11-20 12:32:10
字體:
來源:轉載
供稿:網友

本文實例講述了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><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>js放煙花效果(面向對象版)</title><style type="text/css">html,body{overflow:hidden;}body,div,p{margin:0;padding:0;}body{background:#000;font:12px/1.5 arial;color:#7A7A7A;}a{text-decoration:none;outline:none;}#tips,#copyright{position:absolute;width:100%;height:50px;text-align:center;background:#171717;border:2px solid #484848;}#tips{top:0;border-width:0 0 2px;}#tips a{font:14px/30px arial;color:#FFF;background:#F06;display:inline-block;margin:10px 5px 0;padding:0 15px;border-radius:15px;}#tips a.active{background:#FE0000;}#copyright{bottom:0;line-height:50px;border-width:2px 0 0;}#copyright a{color:#FFF;background:#7A7A7A;padding:2px 5px;border-radius:10px;}#copyright a:hover{background:#F90;}p{position:absolute;top:55px;width:100%;text-align:center;}</style><script type="text/javascript">var fgm = { on: function(element, type, handler) { return element.addEventListener ? element.addEventListener(type, handler, false) : element.attachEvent("on" + type, handler) }, un: function(element, type, handler) { return element.removeEventListener ? element.removeEventListener(type, handler, false) : element.detachEvent("on" + type, handler) }, bind: function(object, handler) { return function() {  return handler.apply(object, arguments)  }  }, randomRange: function(lower, upper) { return Math.floor(Math.random() * (upper - lower + 1) + lower)  }, getRanColor: function() { var str = this.randomRange(0, 0xFFFFFF).toString(16); while(str.length < 6) str = "0" + str; return "#" + str  }};//初始化對象function FireWorks() { this.type = 0; this.timer = null; this.fnManual = fgm.bind(this, this.manual)}FireWorks.prototype = { initialize: function() { clearTimeout(this.timer); fgm.un(document, "click", this.fnManual); switch(this.type) {  case 1:  fgm.on(document, "click", this.fnManual);  break;  case 2:  this.auto();  break; }; }, manual: function(event) { event = event || window.event; this.__create__({  x: event.clientX,  y: event.clientY  }); }, auto: function () { var that = this; that.timer = setTimeout(function() {    that.__create__({  x: fgm.randomRange(50, document.documentElement.clientWidth - 50),  y: fgm.randomRange(50, document.documentElement.clientHeight - 150)  })   that.auto(); }, fgm.randomRange(900, 1100)) }, __create__: function (param) { var that = this; var oEntity = null; var oChip = null; var aChip = []; var timer = null; var oFrag = document.createDocumentFragment(); oEntity = document.createElement("div"); with(oEntity.style) {  position = "absolute";  top = document.documentElement.clientHeight + "px";  left = param.x + "px";  width = "4px";  height = "30px";  borderRadius = "4px";  background = fgm.getRanColor(); }; document.body.appendChild(oEntity); oEntity.timer = setInterval(function() {  oEntity.style.top = oEntity.offsetTop - 20 + "px";  if(oEntity.offsetTop <= param.y) {  clearInterval(oEntity.timer);  document.body.removeChild(oEntity);  (function() {   //在50-100之間隨機生成碎片   //由于IE瀏覽器處理效率低, 隨機范圍縮小至20-30   //自動放煙花時, 隨機范圍縮小至20-30   var len = (/msie/i.test(navigator.userAgent) || that.type == 2) ? fgm.randomRange(20, 30) : fgm.randomRange(50, 100)      for (i = 0; i < len; i++) {   oChip = document.createElement("div");   with(oChip.style) {    position = "absolute";    top = param.y + "px";    left = param.x + "px";    width = "4px";    height = "4px";    overflow = "hidden";    borderRadius = "4px";    background = fgm.getRanColor();     };   oChip.speedX = fgm.randomRange(-20, 20);   oChip.speedY = fgm.randomRange(-20, 20);   oFrag.appendChild(oChip);   aChip[i] = oChip   };   document.body.appendChild(oFrag);   timer = setInterval(function() {   for(i = 0; i < aChip.length; i++) {    var obj = aChip[i];    with(obj.style) {    top = obj.offsetTop + obj.speedY + "px";    left = obj.offsetLeft + obj.speedX + "px";    };    obj.speedY++;    (obj.offsetTop < 0 || obj.offsetLeft < 0 || obj.offsetTop > document.documentElement.clientHeight || obj.offsetLeft > document.documentElement.clientWidth) && (document.body.removeChild(obj), aChip.splice(i, 1))   };   !aChip[0] && clearInterval(timer);   }, 30)  })()  } }, 30) }};fgm.on(window, "load", function() { var oTips = document.getElementById("tips"); var aBtn = oTips.getElementsByTagName("a"); var oFireWorks = new FireWorks(); fgm.on(oTips, "click", function(event) { var oEvent = event || window.event; var oTarget = oEvent.target || oEvent.srcElement; var i = 0; if(oTarget.tagName.toUpperCase() == "A") {  for(i = 0; i < aBtn.length; i++) aBtn[i].className = "";  switch(oTarget.id) {  case "manual":   oFireWorks.type = 1;   break;  case "auto":   oFireWorks.type = 2;   break;  case "stop":   oFireWorks.type = 0;   break;  }  oFireWorks.initialize();  oTarget.className = "active";  oEvent.stopPropagation ? oEvent.stopPropagation() : oEvent.cancelBubble = true } });});fgm.on(document, "contextmenu", function(event) { var oEvent = event || window.event; oEvent.preventDefault ? oEvent.preventDefault() : oEvent.returnValue = false});</script></head><body><div id="tips"><a id="manual" href="javascript:;">手動放煙花</a><a id="auto" href="javascript:;">自動放煙花</a><a id="stop" href="javascript:;">停止放煙花</a></div><p>由于瀏覽器渲染能力有限, 當瀏覽器為IE或選擇自動放煙花時, 隨機生成的煙花碎片范圍自動調整至20-30</p><div id="copyright">建議使用Firefox, Chrome瀏覽器預覽效果. By ― Ferris, QQ:21314130</div></body></html>

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
奇米四色中文综合久久| 国产精品欧美日韩一区二区| 久久人人爽人人爽人人片av高清| 亚洲视频欧洲视频| 国产精品视频26uuu| 欧美一二三视频| 精品久久久国产| 日韩成人中文字幕| 成人激情视频小说免费下载| 91精品国产91久久久久福利| 国产女人精品视频| 欧美与黑人午夜性猛交久久久| 一区二区在线视频| 亚洲2020天天堂在线观看| 久久成人国产精品| 亚洲r级在线观看| 成人情趣片在线观看免费| 一区二区三区回区在观看免费视频| 欧美高清在线播放| 国产精品网站大全| 欧美性精品220| 国产男人精品视频| 久久久成人av| 伊人伊成久久人综合网站| 日韩在线欧美在线国产在线| 久久91精品国产91久久久| 国产精品久久视频| 欧美视频不卡中文| 国产精品日日摸夜夜添夜夜av| 日韩av电影手机在线| 国产精品福利久久久| 美女撒尿一区二区三区| 欧美老妇交乱视频| 国产欧美在线播放| 日韩av一区二区在线| 精品在线观看国产| 精品毛片三在线观看| 亚洲大胆人体视频| 欧美视频在线免费| 在线观看免费高清视频97| 91精品在线看| 国内精品久久久久| 久久久www成人免费精品张筱雨| 少妇高潮 亚洲精品| 亚洲欧美日韩天堂一区二区| 伊人亚洲福利一区二区三区| 欧美老女人性视频| 成人激情av在线| 国产精品视频1区| 亚洲一区二区三区777| 91精品国产色综合久久不卡98| 日韩国产高清污视频在线观看| 亚洲日韩欧美视频| 国产精品美女主播在线观看纯欲| 亚洲丝袜av一区| 91精品视频在线| 亚洲精品视频网上网址在线观看| 欧美一级大片在线免费观看| 亚洲欧洲中文天堂| 日韩欧美在线视频| 亚洲香蕉在线观看| 亚洲精品一区二区久| 欧美在线一区二区视频| 欧美午夜精品久久久久久人妖| 亚洲自拍欧美另类| 日韩成人黄色av| 亚洲一区二区三区乱码aⅴ蜜桃女| 日韩av在线网站| 日韩成人激情视频| 国产精品视频久| 亚洲精品电影在线观看| 综合av色偷偷网| 国产日韩视频在线观看| 日韩高清电影好看的电视剧电影| 91久久久久久久一区二区| 欧美有码在线观看| 日韩av大片在线| 久久夜色精品亚洲噜噜国产mv| 国产精品久久久久影院日本| 久久天天躁狠狠躁夜夜躁| 亚洲白虎美女被爆操| 国产精品成人播放| 日韩理论片久久| 91高清免费视频| 国产美女被下药99| 欧美一级视频在线观看| 夜夜躁日日躁狠狠久久88av| 成人av色在线观看| 欧美午夜无遮挡| 亚洲91精品在线观看| 久久天天躁狠狠躁夜夜躁| 亚洲第一精品夜夜躁人人躁| 亚洲视频在线观看免费| 精品女厕一区二区三区| 国产成人一区二区在线| 国产精品久久久久久五月尺| 538国产精品视频一区二区| 国产精品久久久久久影视| 欧美专区国产专区| 国产精品99久久久久久白浆小说| 欧美日韩视频免费播放| 国产精品国产自产拍高清av水多| 亚洲欧美激情视频| 91国产美女视频| 亚洲国产小视频| 日韩一二三在线视频播| 精品亚洲永久免费精品| 欧美另类极品videosbest最新版本| 欧美尤物巨大精品爽| 精品久久香蕉国产线看观看亚洲| 亚洲人成伊人成综合网久久久| 精品日韩美女的视频高清| 国产精品扒开腿做爽爽爽视频| 国产精品视频导航| 91国产精品电影| 亚洲天堂av在线免费| 久久亚洲综合国产精品99麻豆精品福利| 情事1991在线| 日韩中文在线观看| 国产精品久久电影观看| 日韩在线一区二区三区免费视频| 96sao精品视频在线观看| www.亚洲男人天堂| 91免费综合在线| 亚洲人成在线观看| 国产精品一区二区三区免费视频| 国产在线播放不卡| 美日韩在线视频| 国产精品高清在线| 亚洲影院污污.| 国产精品色视频| 日韩av在线直播| 欧美日韩午夜剧场| 国产精品6699| 岛国精品视频在线播放| 久久中国妇女中文字幕| 97久久精品人人澡人人爽缅北| 国产91在线播放精品91| 欧美伦理91i| 久久久久亚洲精品国产| 国产成人激情视频| 国产精品国语对白| 欧美精品www| 欧美高清性猛交| 91高清视频免费| 欧美成人免费播放| 亚洲精品成a人在线观看| 亚洲精品91美女久久久久久久| 成人黄色中文字幕| 久久久久国产视频| 欧美在线视频免费观看| 色中色综合影院手机版在线观看| 欧美日韩国产123| 久久久久久久久久国产精品| 日韩在线免费高清视频| 色综合天天狠天天透天天伊人| 亚洲天堂av在线播放| 国产在线播放91| 亚洲人成电影网站色| 色综合色综合网色综合| 亚洲第一免费播放区| 精品亚洲一区二区三区在线播放| 国产成人精品av| 亚洲国内精品在线|