function positionit() { var dsocleft= document.documentElement.scrollLeft var dsoctop= document.documentElement.scrollTop var window_width= document.documentElement.clientWidth var window_height= document.documentElement.clientHeight if (ie||document.getElementById) { flotingBox_1.style.left=parseInt(dsocleft)+parseInt(window_width)-flboxwidth +"px"; flotingBox_1.style.top=parseInt(dsoctop)+parseInt(window_height)-flboxheight-Voffset +"px"; } }
那就得看看positionit函数是怎么定义的罗
每10毫秒执行一次 positionit()
clearInterval(floatingboxinterval)
清除掉setInterval() 设置的timeout
你就这样理解没错!!!顺便告知你...浏览器最佳承受能力是 50毫秒执行一次..
floatingboxinterval = setInterval("positionit()",10);
clearInterval(floatingboxinterval);
弹出窗口正常。不去掉弹出窗口一闪而过。我是从某大型网站主页上截取的js,它为何正常弹出,是因为页面大所以要这么做么?每10毫秒执行一次。
clearInterval(floatingboxinterval);
等价于positionit()
得看你的positionit()是做啥的
function positionit()
{
var dsocleft= document.documentElement.scrollLeft
var dsoctop= document.documentElement.scrollTop
var window_width= document.documentElement.clientWidth
var window_height= document.documentElement.clientHeight
if (ie||document.getElementById)
{
flotingBox_1.style.left=parseInt(dsocleft)+parseInt(window_width)-flboxwidth +"px";
flotingBox_1.style.top=parseInt(dsoctop)+parseInt(window_height)-flboxheight-Voffset +"px";
}
}
不过我更愿意使用window.onresize来做,虽然不是标准事件但是印象中常用的浏览器都能支持
可以这么理解:隔10毫秒再执行,保证窗口已弹出。