我在此處閱讀此問題"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