..



 ■HomeJavaScriptサンプル集動画でHPを装飾しゃぼんだま−プログラムの解説

+1JavaScript 無料のフリースクリプト集 ...
しゃぼんだま
しゃぼんだま

 透明なシャボン玉が画面をゆらゆらと飛び回ります。HPのアクセントにいかがですか?



 プログラムの解説
1.画像の数を変える

 画像の数を変えるには、1行目の「1|imMaxCh=10;// 最大画像数の数値を変更します。

2.画像の揺れる幅を変える

 画像の揺れる幅を変えるには、6行目の「6 |imMz=8;// 振幅の大きさ」の値を変更します。

3.画像を変える

 画像自体を変更するとおもしろいかもしれません。

4.プログラムリスト(imgmoveprog.js)

imMaxCh=10;// 最大画像数
imX=new Array(imMaxCh);// 画像の座標
imY=new Array(imMaxCh);
imZ=new Array(imMaxCh);// 画像の加速度
imW=new Array(imMaxCh);// 加速度への加算減算フラグ
imMz=8;// 振幅の大きさ
imA=0;
var imWx;
var imWy;// ウインドウの幅と高さ
bw=0;// ブラウザチェック
document.write("<img src='pjs_logo.gif' style='position:absolute;left:0;top:0;' onClick='goHome()'>");
for(var i=0;i<imMaxCh;i++)
{
   var j=Math.round(Math.random())+1
   document.write("<img src='buble"+j+".gif' width=32 height=32 style='position:absolute;left:-200px;' name='imch"+i+"'>");
}
imgInit();
function imgInit()// 初期設定
{
  if(document.getElementById){bw=1;}// ネスケ6〜 IE5〜なら真
  if((document.all)&&(bw==1)){bw=2;}// IE4〜なら真
  if(bw==0)
   {
      alert("ブラウザバージョンが対応していません\n最新のブラウザに更新してください\n推奨バージョン(NN6〜,IE5〜)\n    +1JavaScript");
      return;
   }
   imMxSet();
   for(var i=0;i<imMaxCh;i++)// 画像の変数の初期設定
   {
      imX[i]=Math.floor(Math.random()*imWx);
      imY[i]=Math.floor(Math.random()*imWy);
      imZ[i]=Math.floor(Math.random()*(imMz-1)*2)-(imMz-1);
      if(Math.random()<0.5){imW[i]=1;}else{imW[i]=-1;}
   }
   imMain();
}
function imMxSet()// ウインドウをリサイズした時にウインドウの幅と高さを取得
{
   if(bw==1)// ネスケの場合
   {
      imWx=window.innerWidth+window.pageXOffset-15;
      imWy=window.innerHeight+window.pageYOffset;
   }
   if(bw==2)// IEの場合
   {
      imWx=window.document.body.clientWidth+document.body.scrollLeft;
      imWy=window.document.body.clientHeight+document.body.scrollTop;
   }
}
function goHome()
{
   window.open("http://plusone.jpn.org/javascript/");
}
function imMain()// メインルーチン
{
   var x,y;
   imMxSet();
   for(var i=0;i<imMaxCh;i++)
   {
      imX[i]+=imZ[i];
      imA++;
      if(imA==3)
      {
         imA=0;
         imZ[i]+=imW[i];
         if(Math.abs(imZ[i])>imMz){imW[i]=-imW[i];}
      }
      imY[i]-=2;
      if(imY[i]<-32)// 画面から消えたら下に戻す
      {
         imX[i]=Math.floor(Math.random()*imWx);
         imY[i]=imWy;
      }
      x=imX[i];
      y=imY[i];
      if(x>imWx-document.images["imch"+i].width){x=-100;}
      if(y>imWy-document.images["imch"+i].height){y=-100;}
      document.images["imch"+i].style.left=x;// 画像の座標の変更
      document.images["imch"+i].style.top=y;
   }
   if(bw==2){setTimeout("imMain()",50);}else{setTimeout("imMain()",40);}// 割込処理
}


..


..