基于JavaScript代碼實現(xiàn)隨機漂浮圖片廣告
在網(wǎng)上有很多這樣的代碼,不過未必符合W3C標(biāo)準(zhǔn),因為在頭部加上<!DOCTYPE html>類似標(biāo)簽之后,漂浮效果就會失效,下面分享一個符合標(biāo)準(zhǔn)的漂浮代碼,使需要的朋友免去大量改造代碼的繁瑣。
代碼一:
代碼如下:
<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>漂浮廣告代碼</title> <style type="text/css"> #thediv { z-index:100; position:absolute; top:43px; left:2px; height:100px; width:100px; background-color:red; } </style> <script type="text/javascript"> var xPos=300; var yPos=200; var step=1; var delay=8; var height=0; var Hoffset=0; var Woffset=0; var yon=0; var xon=0; var pause=true; var interval; function changePos() { width=document.documentElement.clientWidth; height=document.documentElement.clientHeight; Hoffset=thediv.offsetHeight; Woffset=thediv.offsetWidth; thediv.style.left=(xPos+document.body.scrollLeft+document.documentElement.scrollLeft)+"px"; thediv.style.top=(yPos+document.body.scrollTop+document.documentElement.scrollTop)+"px"; if(yon) { yPos=yPos+step; } else { yPos=yPos-step; } if(yPos<0) { yon=1; yPos=0; } if(yPos>=(height-Hoffset)) { yon=0; yPos=(height - Hoffset); } if(xon) { xPos=xPos + step; } else { xPos=xPos - step; } if(xPos < 0) { xon = 1; xPos = 0; } if(xPos >= (width - Woffset)) { xon = 0; xPos = (width - Woffset); } } function start() { thediv.visibility="visible"; interval=setInterval('changePos()',delay); } function pause_resume() { if(pause) { clearInterval(interval); pause = false; } else { interval = setInterval(changePos,delay); pause = true; } } window.onload=function() { thediv.style.top=yPos; start(); } </script> </head> <body> <div id="thediv"></div> </body> </html>
以上代碼實現(xiàn)了我們的要求,紅色div塊能夠能夠在網(wǎng)頁中隨機漂浮,并且兼容各個瀏覽器。代碼的實現(xiàn)過程這里就不多介紹了,如有任何問題可以跟帖留言。
代碼二:JS隨機漂浮廣告代碼具體實例
代碼如下:
<!--隨機漂浮廣告開始--> <div id="float" style="position:absolute; z-index:3;(我建議大家把這里設(shè)為100,這樣浮動圖就不會被遮住了) left: 512px; width: 83px; top: 9px; height: 53px;"> <img src="piaofu.gif" width="100" height="50"> </div> <script type="text/javascript"> <!--隨機漂浮廣告 --> var xPos=0,yPos=0;//x,y軸坐標(biāo) var xon=0;//圖片在x軸移動方向 var yon=0;//圖片在y軸移動方向 var step=1; //移動距離 var img=document.getElementByIdx_x("float");//圖片層 function floatP() { var width=document.body.clientWidth;//瀏覽器寬度 var height=document.body.clientHeight;//瀏覽器高度 var Hoffset=img.offsetHeight;//圖片高度 var Woffset=img.offsetWidth;//圖片寬度 img.style.left=xPos+document.body.scrollLeft;//圖片距離瀏覽器左側(cè)位置 img.style.top=yPos+document.body.scrollTop;//圖片距離瀏覽器頂端位置 if(yon==0){ yPos=yPos+step;//圖片在y軸方向上下移動 }else{ yPos=yPos-step; } if(yPos<0){//飄到頂端,沿y軸向下移動 yon=0; yPos=0; } if(yPos>=(height-Hoffset)){//飄到低端,沿y軸向上移動 yon=1; yPos=(height-Hoffset); } if(xon==0){//x軸向右移動 xPos=xPos+step; }else{ xPos=xPos-step;//x軸向左移動 } if(xPos<0){//飄到左側(cè)時沿x軸向右移動 xon=0; xPos=0; } if(xPos>=(width-Woffset)){//飄到右側(cè)時沿x軸向左移動 xon=1; xPos=(width-Woffset); } setTimeout("floatP()",30);//定時調(diào)用。 } window.onload=floatP(); </script>
代碼如下:
<script> var x = 50,y = 60 //浮動層的初始位置,分別對應(yīng)層的初始X坐標(biāo)和Y坐標(biāo) var xin = true, yin = true //判斷層的X坐標(biāo)和Y坐標(biāo)是否在在控制范圍之內(nèi),xin為真是層向右移動,否則向左;yin為真是層向下移動,否則向上 var step = 1 //層移動的步長,值越大移動速度越快 var delay = 10 //層移動的時間間隔,單位為毫秒,值越小移動速度越快 var obj=document.getElementByIdx_x("float") //捕獲id為ad的層作為漂浮目標(biāo) function floatAD() { var L=T=0 //層移動范圍的左邊界(L)和上邊界(T)坐標(biāo) var R= document.body.clientWidth-obj.offsetWidth //層移動的右邊界 var B = document.body.clientHeight-obj.offsetHeight //層移動的下邊界 obj.style.left = x + document.body.scrollLeft //更新層的X坐標(biāo),實現(xiàn)X軸方向上的運動;document.body.scrollLeft為文檔區(qū)域的滾動條向右拉的距離,以保證在滾動條右拉時層仍在可見范圍內(nèi) obj.style.top = y + document.body.scrollTop //更新層的Y坐標(biāo),實現(xiàn)Y軸方向上的運動;document.body.scrollTop為文檔區(qū)域的滾動條向下拉的距離,以保證在滾動條下拉時層仍在可見范圍內(nèi) x = x + step*(xin?1:-1) //通過判斷層的范圍決定層在X軸上的運動方向 if (x < L) { xin = true; x = L} //層超出左邊界時的處理 if (x > R){ xin = false; x = R} //層超出右邊界時的處理 y = y + step*(yin?1:-1) //通過判斷層的范圍決定層在Y軸上的運動方向 if (y < T) { yin = true; y = T } //層超出上邊界時的處理 if (y > B) { yin = false; y = B } //層超出下邊界時的處理 } var itl= setInterval("floatAD()", delay) //每delay秒執(zhí)行一次floatAD函數(shù) obj.onmouseover=function(){clearInterval(itl)} //層在鼠標(biāo)移上時清除上面的間隔事件,實現(xiàn)層在的鼠標(biāo)移上時停止運動的效果 obj.onmouseout=function(){itl=setInterval("floatAD()", delay)} //層在鼠標(biāo)移開時開始間隔事件,實現(xiàn)層在的鼠標(biāo)移開時繼續(xù)運動的效果 </script>
腳本之家友情提醒大家需要注意事項:
在網(wǎng)頁中插入Flash和浮動廣告,你會發(fā)現(xiàn)在浮動廣告浮到Flash處時會在下面,我們?nèi)绾谓鉀Q這個問題呢,其它很簡單
在flash代碼的位置加入下面語句就可以了
<param name="wmode" value="opaque">
例:
如果下面是flash所在位置的代碼:
代碼如下:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="780" height="165"> <param name="movie" value="banner1.swf"> <param name="quality" value="high"> <param name="menu" value="false"> <param name="wmode" value="opaque"><!--主要是這句--> <embed src="banner1.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="780" height="165"></embed> </object>
相關(guān)文章
HTA版JSMin(省略修飾語若干)基于javascript語言編寫
JSMin是一種很有用的ECMAScript代碼減肥工具,雖然它只是一種較為初級的工具,但用它來對付我自己編寫的大部分ECMAScript代碼效果都很不錯,而且在我這里也從未發(fā)生過減肥后代碼出錯之類的問題。2009-12-12JS操作select下拉框動態(tài)變動(創(chuàng)建/刪除/獲取)
動態(tài)創(chuàng)建及刪除select、添加及刪除選項option、獲得選項option的值、獲得選項option的文本等等,感興趣的朋友可以參考下哈2013-06-06用RadioButten或CheckBox實現(xiàn)div的顯示與隱藏
用RadioButten(或CheckBox)實現(xiàn)div的顯示與隱藏,當(dāng)選擇“女”時,顯示“美女、才女”;當(dāng)選擇“男”時隱藏,具體實現(xiàn)如下,感興趣的朋友可以參考下2013-09-09javascript 中null和undefined區(qū)分和比較
這篇文章主要介紹了javascript 中null和undefined區(qū)分和比較的相關(guān)資料,需要的朋友可以參考下2017-04-04