ホームページ  >  記事  >  ウェブフロントエンド  >  JS花火背景エフェクト実装方法_JavaScriptスキル

JS花火背景エフェクト実装方法_JavaScriptスキル

WBOY
WBOYオリジナル
2016-05-16 16:11:26845ブラウズ

この記事の例では、JS花火背景エフェクトの実装方法を説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです。

コードをコピー コードは次のとおりです:



<頭>

また一个很酷的JS烟花背景特效
<スクリプトタイプ="text/javascript">
var 花火 = function(){
 this.size = 20;
 this.rise();
}
花火.プロトタイプ = {
 color:function(){
  var c = ['0','3','6','9','c','f'];
  var t = [c[Math.floor(Math.random()*100)%6],'0','f'];
  t.sort(function(){return Math.random()>0.5?-1:1;});
  return '#' t.join('');
 }、
 aheight:function(){
  var h = document.documentElement.clientHeight-250;
  return Math.abs(Math.floor(Math.random()*h-200)) 201;
 }、
 爆竹:function(){
  var b = document.createElement('div');
  var w = document.documentElement.clientWidth;
  b.style.position = '絶対';
  b.style.color = this.color();
  b.style.bottom = 0;
  b.style.left = Math.floor(Math.random()*w) 1 'px';
  document.body.appendChild(b);
  b を返します;
 }、
 上昇:関数(){
  var o = this.firecracker();
  var n = this.aheight();
  var c = this.color;
  var e = this.expl;
  var s = this.size;
  var k = n;
  var m = function(){
   o.style.bottom = parseFloat(o.style.bottom) k*0.1 'px';
   k-=k*0.1;
   if(k     clearInterval(クリア);
    e(o,n,s,c);
   }
  }
  o.innerHTML = '.';
  if(parseInt(o.style.bottom)    var clear = setInterval(m,20);
  }
 }、
 expl:function(o,n,s,c){
  var R=n/3,Ri=n/6,Rii=n/9;
  var r=0,ri=0,rii=0;
  for(var i=0;i    varspan = document.createElement('span');
   var p = document.createElement('i');
   var a = document.createElement('a');
   スパン.スタイル.ポジション = '絶対';
   span.style.fontSize = n/10 'px';
   スパン.スタイル.左 = 0;
   スパン.スタイル.トップ = 0;
   span.innerHTML = '*';
   p.style.position = 'absolute';
   p.style.left = 0;
   p.style.top = 0;
   p.innerHTML = '*';
   a.style.position = '絶対';
   a.style.left = 0;
   a.style.top = 0;
   a.innerHTML = '*';
   o.appendChild(span);
   o.appendChild(p);
   o.appendChild(a);
  }
  関数 spr(){
   r = R*0.1;
   ri = Ri*0.06;
   rii = Rii*0.06;
   sp = o.getElementsByTagName('span');
   p = o.getElementsByTagName('i');
   a = o.getElementsByTagName('a');
   for(var i=0; i     sp[i].style.color = c();
    p[i].style.color = c();
    a[i].style.color = c();
    sp[i].style.left=r*Math.cos(360/s*i) 'px';
    sp[i].style.top=r*Math.sin(360/s*i) 'px';
    sp[i].style.fontSize=parseFloat(sp[i].style.fontSize)*0.96 'px';
    p[i].style.left=ri*Math.cos(360/s*i) 'px';
    p[i].style.top=ri*Math.sin(360/s*i) 'px';
    p[i].style.fontSize=parseFloat(sp[i].style.fontSize)*0.96 'px';
    a[i].style.left=rii*Math.cos(360/s*i) 'px';
    a[i].style.top=rii*Math.sin(360/s*i) 'px';
    a[i].style.fontSize=parseFloat(sp[i].style.fontSize)*0.96 'px';
   }
   R-=R*0.1;
   if(R<2){
    o.innerHTML = '';
    o.parentNode.removeChild(o);
    clearInterval(clearI);
   }
  }
  var clearI = setInterval(spr,20);
 }
}
window.onload = function(){
 関数 happyNew Year(){
  新しい花火();
 }
 setInterval(happyNew Year,1000);
}






操作効果は次のとおりです:

この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。