我在此处阅读此问题"Is it faster to swap an img src or show/hide multiple images?"在JavaScript中显示/隐藏图像的最佳方式
问题的答案有两个选项。
1)改变图像源 - 页面加载速度更快,交换消耗时间。
2)预加载图像,然后简单地显示/隐藏 - 页面加载慢一点,交换更快
我的问题,我去的第二个选项加载时间是第二优先给我。但是有没有最好的或最优化的编写代码的方式?
比方说,我总是从某个地方得到数字(10,11,15,25,13,19等随机)。我必须显示许多图像(小点,数量30个,每个图像大约1kb)。我也有条件,每个点代表1.5。所以我写了下面的代码。
var dots = new Array(30);
function onBodyLoad() {
for(var j=0;j<30;j++)
dots[j] = document.getElementById("dotimg"+j);
}
//called by some method every second.
//argument: the value received from somewhere.
function updateImages(s) {
var x = Math.round(s);
var dotPos = x/1.5;
for(var i=0;i<dotPos;i++) {
dots[i].style.visibility='visible'; //show that many dots
document.getElementById('dot-val').textContent=s;//value received shown in span
}
for(var j=dotPos;j<30;j++) dots[j].style.visibility='hidden';//hide remaining dots
}
因此,如果接收到的值是25在一个第二,17点会显示..如果在接收到下一个第二值是15%,10点会显示,其余的将被隐藏。有没有更好的方式来编写上面的代码?
它的一个img,所以我用可见性属性而不是显示属性。使用显示器在可见度方面有优势吗? 顺便说一句,代码非常快,因为避免了一个循环!你应该知道你很棒。 – thandasoru
我更喜欢使用显示器,因为通常我们不需要在其他元素的位置中考虑隐藏元素。这里有一个很好的解释差异:http://www.vanseodesign.com/css/visibility-vs-display/顺便说一句,谢谢! :D你目前的声望是“找不到”;-) – Cerbrus
大声笑,好一个..让我想了一会儿:P – thandasoru