Firefox,阻止javascript语句之间的呈现

时间:2010-05-09 11:44:56

标签: javascript html firefox

我正在尝试在我的网站上创建一些缩放鼠标光标功能,最终运行这两行(+高度/ scrollTop相同)。

canvas.style.width = someValue;
canvas.parentNode.scrollLeft = someOtherValue;

问题是在firefox(3.6)中,页面在第一行执行后直接重新呈现,并且由于视图依赖于两个值,这意味着每次重新计算视图时,firefox都将呈现无效在正确的视图之前查看,换句话说,创建闪烁。

我已经尝试过交换这两行但遇到了同样的问题。

在chrome,opera和IE中,这不会发生。两行都在任何渲染完成之前执行。

有没有办法手动锁定渲染,可能是这样的?

document.disableRendering();        //fantasy function
canvas.style.width = someValue;
canvas.parentNode.scrollLeft = someOtherValue;
document.enableRendering();         //fantasy function

1 个答案:

答案 0 :(得分:1)

避免这种情况的常用方法是在执行DOM操作时设置.display = 'none';