當(dāng)前位置:軟件學(xué)堂 > 資訊首頁(yè) > 網(wǎng)絡(luò)編程 > 編程其他 > JS實(shí)現(xiàn)晃動(dòng)的圖片

JS實(shí)現(xiàn)晃動(dòng)的圖片

2012/11/8 10:13:34作者:佚名來(lái)源:網(wǎng)絡(luò)

移動(dòng)端

【實(shí)例名稱(chēng)】

JS實(shí)現(xiàn)晃動(dòng)的圖片

【實(shí)例描述】

文字可以實(shí)現(xiàn)左右滾動(dòng),圖片也可以實(shí)現(xiàn)左右移動(dòng)。本例介紹一個(gè)圖片左右移動(dòng)的特效。

【實(shí)例代碼】

<html xmlns="http://www.w3.org/1999/xhtml" > <head> <title>標(biāo)題頁(yè)-學(xué)無(wú)憂(yōu)(denvermotorcycleaccidentlawyer.com)</title> <script language="JavaScript"> step = 0; obj = new Image();        //創(chuàng)建圖片對(duì)象 function anim(xp,xk,smer) //smer 代表晃動(dòng)方向 {    obj.style.left = x;    x += step*smer;   if (x>=(xk+xp)/2) {     if (smer == 1) step--; //往左移動(dòng)        else step++;     }  else {     if (smer == 1) step++; //往右移動(dòng)        else step--;     }    if (x >= xk) {      //如果已經(jīng)到右邊界,則反向晃動(dòng)        x = xk;        smer = -1;       }

  if (x <= xp) {   //如果一定到左邊界,則反向晃動(dòng)        x = xp;        smer = 1;       }   setTimeout('anim('+xp+','+xk+','+smer+')', 40); //設(shè)置定時(shí)器,實(shí)現(xiàn)不斷晃動(dòng)效果 }

function moveLR(objID,movingarea_width,c) {

  if (navigator.appName=="Netscape") window_width = window.innerWidth;      else window_width = document.body.offsetWidth;   //獲取窗體的寬度   obj = document.images[objID];     image_width = obj.width;                            //獲取圖像的寬度     x1 = obj.style.left;                                //獲取圖像的X坐標(biāo)   x = Number(x1.substring(0,x1.length-2));             //去掉后面的像素標(biāo)記“px”   if (c == 0) {                                           if (movingarea_width == 0) {                  //沒(méi)有設(shè)置移動(dòng)區(qū)域的情況       right_margin = window_width - image_width;          anim(x,right_margin,1);                  //開(kāi)始晃動(dòng)圖片    }              else { right_margin = x + movingarea_width - image_width;     if (movingarea_width < x + image_width) window.alert("No space for moving!");           else anim(x,right_margin,1);   }    }    else {        if (movingarea_width == 0)        //沒(méi)有設(shè)置移動(dòng)區(qū)域的情況           right_margin = window_width - image_width;     else {        x = Math.round((window_width-movingarea_width)/2);     right_margin = Math.round((window_width+movingarea_width)/2)-image_width; //獲取可以移動(dòng)的空間    }   anim(x,right_margin,1);    }       } </script> <img src="http://www.baidu.com/img/logo.gif" name="img1" style='position: absolute; top: 50px; left: 213px;' border=0 id="myImg"> <script language="JavaScript">   setTimeout("moveLR('myImg',400,1)",10); </script> </head> <body> </body> </html>

 

 

【運(yùn)行效果】

 晃動(dòng)的圖片運(yùn)行效果

【難點(diǎn)剖析】

本例的重點(diǎn)是定時(shí)器和隨機(jī)數(shù)的應(yīng)用。定時(shí)器用來(lái)不斷移動(dòng)圖片,隨機(jī)數(shù)的獲取是使用“Math.random”函數(shù)?!癕ath.round”是四舍五人函數(shù),返回一個(gè)偽隨機(jī)數(shù)(0~1之間的double數(shù))。

【源碼下載】

為了JS代碼的準(zhǔn)確性,請(qǐng)點(diǎn)擊:JS實(shí)現(xiàn)晃動(dòng)的圖片 進(jìn)行本實(shí)例源碼下載 

標(biāo)簽: JS實(shí)現(xiàn)  圖片