<script language="javascript" type="text/javascript">
var x = 50,y = 60 //浮動層的初始位置,分別對應層的初始X坐標和Y坐標
var xin = true, yin = true //判斷層的X坐標和Y坐標是否在在控制範圍之內,xin為真是層向右移動,否則向左;yin為真是層向下移動,否則向上
var step = 1 //層移動的步長,值越大移動速度越快
var delay = 10 //層移動的時間間隔,單位為毫秒,值越小移動速度越快
var obj=document.getElementById("floatingad") //捕獲id為ad的層作為漂浮目標
function floatAD() { var L=T=0 //層移動範圍的左邊界(L)和上邊界(T)坐標
if(document.documentElement.clientHeight && document.compatMode != 'BackCompat'){
var R = document.documentElement.clientWidth-obj.offsetWidth //層移動的右邊界
var B = document.documentElement.clientHeight-obj.offsetHeight //層移動的下邊界
obj.style.left = (x + document.documentElement.scrollLeft)+"px";
obj.style.top = (y + document.documentElement.scrollTop)+"px";
}
else if(document.body.clientHeight){
var R = document.body.clientWidth-obj.offsetWidth //層移動的右邊界
var B = document.body.clientHeight-obj.offsetHeight //層移動的下邊界
obj.style.left = (x + document.body.scrollLeft )+"px";
obj.style.top = (y + document.body.scrollTop)+"px";
}
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>