我在javascript中创建了一个在IE中工作的水平滚动 和Chrome,然而我在Firefox 2和3中得到一个闪烁 正在移动包含一个带有图像和文本的iframe绝对 定位div。 (见下面的代码。)
问题:
1)内容出现在div的左侧或右侧 动画div似乎在style.left在相邻div下“移动”的一侧闪烁。这仅在Firefox中发生。
2)似乎使用鼠标悬停处理程序大约10 秒(仅限Firefox)动画暂停约一秒,然后 然后重新开始。这在IE或Chrome中都不会发生。
javascript是:
<script type="text/javascript">
//outtake
function scrollframeleft() {
var divmenuleft = getLeft("divMenu");
var framewidth = parent.frames["framecontent"].scrollwidth;
var scrollportal = 740;
var scrollCatch = 13;
if (!noScroll && divmenuleft <=scrollCatch) {
divMenuObjStyle.left=(divmenuleft+scrollDistVar)+'px'
t = setTimeout("scrollframeleft();",scrollSpeedVar)
}
}
</script>
HTML是:
<div id="divBg" style="position:absolute; z-index:10; top:415px; left:13px; width:740px; height:100px; clip:rect(0px 740px 102px 13px); visibility:visible;">
<div id="divMenu" style="position:absolute; z-index:10; top:0px; left:13px; color:#FFFFFF; visibility:visible;">
<iframe name="framecontent" id="framecontent" frameborder="0"
height="100" width="5000" scrolling="no" src="/content.php">
</iframe>
</div>`
</div>
<div id="divArrowLeft" style="position:absolute; z-index:204; left: 136px; top:398px;">
<a href="#" onmouseover="noScroll=false;scrollframeleft()"
onmouseout="noMove()" onclick="void blur()"><img
src="/images/leftarrow_sm.gif" width="14" height="14" alt="more news scroll left" border="0"></a>
</div>
感谢您的支持!
答案 0 :(得分:1)
对我来说,IE(和Chrome)实现了 REAL 抢占。我的意思是IE完全停止正在做的事情(其他Javascript执行或内部代码来呈现页面或获取它或......)以立即提供javascript函数。
相反,Firefox在服务定时器“中断”之前完成了他正在做的事情。结果,发生抖动。但函数调用不会丢失,仍然可靠。在FF中,由于不明原因,只有显示被冻结。