我有一个用 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>
感谢您的支持!
最佳答案
对我来说,IE(和 Chrome)实现了REAL抢占。我的意思是 IE 几乎会停止它正在做的事情(其他 Javascript 执行或内部代码来渲染页面或获取它或...)以立即提供 JavaScript 函数。
相反,Firefox 在服务定时器“中断”之前完成了他正在做的事情。结果,出现了抖动。但函数调用并没有丢失,仍然可靠。
也有可能在 FF 中仅显示因不明原因被卡住。
关于javascript - setTimeout() 使用 iframe 移动 div 仅在 Firefox 中导致闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/455446/