詳細解析網頁漂浮廣告代碼的含義

來源:互聯網
上載者:User
廣告|網頁

  網頁漂浮廣圖片特效,這種特效我們總是很喜歡,滑鼠指向圖片後圖片停止移動。

<div id="ad" style="position:absolute"><a href="http://www.webjx.com"><img src="/UploadPic/2007-7/200777163350746.jpg" border="0"></a></div><script> var x = 50,y = 60 var xin = true, yin = true var step = 1 var delay = 10 var obj=document.getElementById("ad") function floatAD() { var L=T=0 var R= document.body.clientWidth-obj.offsetWidth var B = document.body.clientHeight-obj.offsetHeight obj.style.left = x + document.body.scrollLeft obj.style.top = y + document.body.scrollTop x = x + step*(xin?1:-1) if (x < L) { xin = true; x = L} if (x > R){ xin = false; x = R} y = y + step*(yin?1:-1) if (y < T) { yin = true; y = T } if (y > B) { yin = false; y = B } } var itl= setInterval("floatAD()", delay) obj.onmouseover=function(){clearInterval(itl)} obj.onmouseout=function(){itl=setInterval("floatAD()", delay)}</script>

    [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運行]

說明:程式碼分析:

<div id="ad" style="position:absolute"><a href="http://www.webjx.com" target="_blank"><img src="/UploadPic/2007-7/200777163350746.jpg" border="0"></a></div>
<script>
var x = 50,y = 60 //[color=Maroon]浮動層的初始位置,分別對應層的初始X座標和Y座標
var xin = true, yin = true //判斷層的X座標和Y座標是否在在控制範圍之內,xin為真是層向右移動,否則向左;yin為真是層向下移動,否則向上
var step = 1 //層移動的步長,值越大移動速度越快
var delay = 5 //層移動的時間間隔,單位為毫秒,值越小移動速度越快
var obj=document.getElementById("ad") //捕獲id為ad的層作為漂浮目標
function floatAD() {
var L=T=0 //層移動範圍的左邊界(L)和上邊界(T)座標
var R= document.body.clientWidth-obj.offsetWidth //層移動的右邊界
var B = document.body.clientHeight-obj.offsetHeight //層移動的下邊界
obj.style.left = x + document.body.scrollLeft //更新層的X座標,實現X軸方向上的運動;document.body.scrollLeft為文檔地區的捲軸向右拉的距離,以保證在捲軸右拉時層仍在可見範圍內
obj.style.top = y + document.body.scrollTop //更新層的Y座標,實現Y軸方向上的運動;document.body.scrollTop為文檔地區的捲軸向下拉的距離,以保證在捲軸下拉時層仍在可見範圍內
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秒執行一次floatAD函數
obj.onmouseover=function(){clearInterval(itl)} //層在滑鼠移上時清除上面的間隔事件,實現層在的滑鼠移上時停止運動的效果
obj.onmouseout=function(){itl=setInterval("floatAD()", delay)} //層在滑鼠移開時開始間隔事件,實現層在的滑鼠移開時繼續運動的效果
</script>

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。