我正在尝试在我的网站上创建一些缩放鼠标光标功能,最终运行这两行(+高度/ 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
答案 0 :(得分:1)
避免这种情况的常用方法是在执行DOM操作时设置.display = 'none';
。