Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firefox,防止在javascript语句之间呈现_Javascript_Html_Firefox - Fatal编程技术网

Firefox,防止在javascript语句之间呈现

Firefox,防止在javascript语句之间呈现,javascript,html,firefox,Javascript,Html,Firefox,我试图在我的网站上创建某种鼠标光标缩放功能,最终运行这两行(+高度/滚动顶部相同) 问题是,在firefox(3.6)中,页面在第一行执行后直接重新呈现,并且由于视图取决于这两个值,这意味着每次我重新计算视图时,firefox都会在正确视图之前呈现一个无效视图,换句话说,会产生闪烁 我尝试交换这两行,但遇到了相同的问题 在chrome、opera和IE中,这不会发生。这两行都是在任何渲染完成之前执行的 有没有办法手动锁定渲染,可能是这样的 document.disableRendering();

我试图在我的网站上创建某种鼠标光标缩放功能,最终运行这两行(+高度/滚动顶部相同)

问题是,在firefox(3.6)中,页面在第一行执行后直接重新呈现,并且由于视图取决于这两个值,这意味着每次我重新计算视图时,firefox都会在正确视图之前呈现一个无效视图,换句话说,会产生闪烁

我尝试交换这两行,但遇到了相同的问题

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

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

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

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

但它不会触发另一次重新绘制吗?在这种情况下不起作用,因为如果设置display:none,画布宽度将为零,并且无法在父级上设置scrollWidth。问题并没有真正提到:)我尝试添加不同的画布,但父级中没有任何内容,并设置此屏幕的宽度/高度相同,仅设置显示:有内容的屏幕上无显示,这样仍有要滚动的内容,您可以在父屏幕上设置向左滚动。坏的是,这会导致重新绘制,正如el.pescado所说的,你会得到一个没有任何内容的flash,但它仍然比内容位置错误的渲染要好。(我的意思是在上面的评论中向左滚动)
document.disableRendering();        //fantasy function
canvas.style.width = someValue;
canvas.parentNode.scrollLeft = someOtherValue;
document.enableRendering();         //fantasy function