为什么用JavaScript缓慢/需要重绘来切换图像可见性?

时间:2013-03-06 16:11:40

标签: javascript image performance visibility show-hide

我的网站上有一些图像相互堆叠(相对DIV内的绝对定位)。我喜欢在mousemove事件之后切换这些图像。我通过添加/删除CSS类来尝试它。这项工作到目前为止。但是,在Chromes Timeline中,我看到很长的重绘,包括每个事件的“图像解码”和“图像调整大小”。我尝试了不同的“隐藏技术”,如“display:none”,“visibility:hidden”和“z-Index:0”。切换显示或可见性没有什么区别,但zIndex版本花了很长时间,因为每个图像都被重绘。所以我在这里。如何在不重绘的情况下切换可见性?至少图像解码不应该是necesarry?!这是我在JS中的代码片段:

var currentImgElem = document.getElementById(elem_id_curr);
var showImgElem = document.getElementById(elem_id_show);

currentImgElem.classList.add("hide");
showImgElem.classList.remove("hide");

而“hide”是以下之一:

display:none;
visibility:hidden;
z-Index:0;

还有一个困惑:当我用绘制到画布的图像做这个时,一切都很好!

0 个答案:

没有答案