遠ざかる(近づく)画像 の JavaScript |
戻 る |
* 回転しながら画像が遠ざかり(近づき)ます。 * 回転方向や、画像が遠ざかるか近づくかを設定できます。 * 数値の設定だけで、画像の種類毎に、画像の指定や、動きの調整が出来ます。 * スクロールに対応・非対応を選択出来ます。 * Internet Explorer 6 および Netscape 7 で動作確認しています。
「入力事項」の部分で、色に合わせて、次の設定をします。 太字は入力可能場所。 ■ 画像の前後に移動する速さを説明に従い、数字で指定します。 正数の場合は遠ざかり、負数の場合は近づくようになります。 ■ 画像の回転する速さを説明に従い、数字で指定します。 +、−の符号で、回転方向を決めます。回転させたくない場合は、「0」を入力します。 ■ 表示したい画像を、アドレスを含むファイル名で指定します。 ■ 回転の中心を指定します。 表示画面の左からと、上からのピクセル値で入力します。 ■ 全体的な画像の大きさを数字で指定。数字が大きいほど、全体的に大きく表示される。 ■ 画像が発生したり、消えたりする位置で、遠い側の距離と、手前側の距離を指定します。 ■ 画像の発生位置を、回転中心に密集させる度合いを指定。数字が大きいほど密集する。 ■ 画面に同時に出したい画像数を入力します。 ■ 画面をスクロールさせた時、画像も同時に移動させるか? ( yes = 1 , no = -1 ) ■ 動きの全体の速さを入力します。(大きいほど速いが、負担大) // ******************************* 入力事項 ********************************** // ======= 入力1:画像の種類および動きの調整(0から順に必要な種類数だけ入力) // 1番目で画像の速さの最大値を入力。 正数で遠ざかり、負数で近づく (目安値 10) // 2番目で円の回転速さの最大値を入力 +:時計廻 -:反時計廻 0:無回転 (目安値 10) // 3番目で出したい画像を、アドレスを含むファイル名で指定 ugoku[0]=new Array( 10, 20, "../parts/samp1.gif"); ugoku[1]=new Array( 15, 15, "../parts/samp2.gif"); ugoku[2]=new Array( 20, 10, "../parts/samp3.gif"); // ======= 入力2:全体表示の調整( [ ]内は、近づく場合) var Xo= 400 ; // 回転中心の、画面左端からの距離(ピクセル) var Yo= 250 ; // 回転中心の、画面上端からの距離(ピクセル) var lr= 10 ; // 画像の大きさで、大きいほど全体的に大きくなる (目安値 10) var pd= 10 ; // 画像が消える[発生する]遠さ。大きいほど遠い (目安値 10) var vp= 10 ; // 画像の発生する[消える]近さ。小きいほど近い (目安値 10) var oar= 10 ; // 画像の発生する範囲。 小きいほど中心に密集する (目安値 10) // ======= 入力3:補助入力事項 var no= 6 ; // 画面に同時に出す画像数を入力 var srl= 1 ; // 画像も同時にスクロールさせるか? ( yes=1 , no=-1 ) // 以上の調整で、速さが足りない(荒い)場合は、次の数値を大きくする var chg= 10 ; // 一秒間の描画の切替数。大きい程全体の動きが速い(目安値 10) // ***************************** 入力事項ここまで ******************************
<script type="text/javascript"> <!--// star ver1.10 (ぱーぷりんの溜まり場) ugoku=new Array(); // この行は触らないで・・ // ******************************* 入力事項 ********************************** // ======= 入力1:画像の種類および動きの調整(0から順に必要な種類数だけ入力) // 1番目で画像の速さの最大値を入力。 正数で遠ざかり、負数で近づく (目安値 10) // 2番目で円の回転速さの最大値を入力 +:時計廻 -:反時計廻 0:無回転 (目安値 10) // 3番目で出したい画像を、アドレスを含むファイル名で指定 ugoku[0]=new Array( 10, 20, "../parts/samp1.gif"); ugoku[1]=new Array( 15, 15, "../parts/samp2.gif"); ugoku[2]=new Array( 20, 10, "../parts/samp3.gif"); // ======= 入力2:全体表示の調整( [ ]内は、近づく場合) var Xo= 400 ; // 回転中心の、画面左端からの距離(ピクセル) var Yo= 250 ; // 回転中心の、画面上端からの距離(ピクセル) var lr= 10 ; // 画像の大きさで、大きいほど全体的に大きくなる (目安値 10) var pd= 10 ; // 画像が消える[発生する]遠さ。大きいほど遠い (目安値 10) var vp= 10 ; // 画像の発生する[消える]近さ。小きいほど近い (目安値 10) var oar= 10 ; // 画像の発生する範囲。 小きいほど中心に密集する (目安値 10) // ======= 入力3:補助入力事項 var no= 6 ; // 画面に同時に出す画像数を入力 var srl= 1 ; // 画像も同時にスクロールさせるか? ( yes=1 , no=-1 ) // 以上の調整で、速さが足りない(荒い)場合は、次の数値を大きくする var chg= 10 ; // 一秒間の描画の切替数。大きい程全体の動きが速い(目安値 10) // ***************************** 入力事項ここまで ****************************** // ----- 共通変数・配列の設定 ----- var docW, docH, offW, offH; v =new Array(); z =new Array(); sp=new Array(); rd=new Array(); dx=new Array(); dy=new Array(); r =new Array(); sita=new Array(); // ----- 開始値の設定 ----- var j=0; vp=vp/100; lr=lr/5; brSize(); for(i=0; i<no; i++){ document.write( "<span id='lay"+i+"' style='position:absolute; z-index:50;'>"+ "<img src='"+ugoku[j][2]+"' id='img"+i+"'></span>"); dx[i]=document.getElementById("img"+i).width; dy[i]=document.getElementById("img"+i).height; sp[i]=ugoku[j][0]; rd[i]=ugoku[j][1]; prim(i); if(j==(ugoku.length-1)){j=0} else{j+=1} } star(); // ----- メインの設定 ----- function star(){ for(i=0; i<no; i++){ if( z[i]>pd || z[i]<vp ){ brSize(); prim(i) } z[i]+=v[i]; sita[i]+=rd[i]/50; sx=r[i]*Math.cos(sita[i])/z[i]+Xo; sy=r[i]*Math.sin(sita[i])/z[i]+Yo; sdx=dx[i]/z[i]; sdy=dy[i]/z[i]; while(sx<0 || sy<0 || (sx+sdx*lr)>docW || (sy+sdy*lr)>docH){ if ( z[i]<vp ){ brSize(); prim(i) } z[i]+=v[i]; sita[i]+=rd[i]/50; sx=r[i]*Math.cos(sita[i])/z[i]+Xo; sy=r[i]*Math.sin(sita[i])/z[i]+Yo; sdx=dx[i]/z[i]; sdy=dy[i]/z[i] } Disp(i,sx,sy) } setTimeout("star()",1000/chg);} // ----- 画像を発生する ----- function prim(i){ if (sp[i]>0) { z[i]=vp } else{ z[i]=pd }; v[i]=[0.6*Math.random()+0.4]*sp[i]/15; ro=Math.sqrt(Math.pow(docW,2)+Math.pow(docH,2))/2 if (sp[i]>0) { r[i]=ro*Math.random()*oar/4 } else{ r[i]=ro*Math.random()*oar*5/pd }; sita[i]=2*Math.PI*Math.random() } // ----- ブラウザのサイズ ----- function brSize(){ if(document.all){ docW=document.body.clientWidth; docH=document.body.clientHeight; offW=document.body.scrollLeft; offH=document.body.scrollTop } else if(document.getElementById){ docW=window.innerWidth; docH=window.innerHeight; offW=window.scrollX; offH=window.scrollY } if(srl < 0){ offW=0; offH=0 } } // ----- 画像を移動させる ----- function Disp(i,sx,sy){ document.getElementById("img"+i).width =lr/z[i]*dx[i]; document.getElementById("img"+i).height=lr/z[i]*dy[i]; document.getElementById("lay"+i).style.left=sx+offW; document.getElementById("lay"+i).style.top =sy+offH } // End --> </script>