2012-04-16 27 views
1

給出的HTML結構:如果圖像尚未完全加載,最好的方式來插入加載器圖標?

<div class="image-container"> 
    <img id="firstslide" src="img/verybig.jpg"> 
</div> 

我不知道是否有一個容易和簡單的方法來檢查

  1. 如果currenly加載圖像並插入到DIV加載圖標和
  2. 已完成加載並顯示滿載圖片

有沒有提示?

+0

你有透明圖像的工作?你知道你的圖片大小是多少?一種方法是給每個'img'標籤一個背景圖片。 – 2012-04-16 19:59:34

+0

@BrianGlaz謝謝你的提問!我有非常大的圖像...就像2 MB ...我討厭它,當這個圖像我慢慢地建立起來...相反,我喜歡有一個小圖標,只要圖像正在加載... – Jurudocs 2012-04-16 20:05:09

回答

2

的jsfiddle:http://jsfiddle.net/FjfvZ/60/

如果你正在使用jQuery:

<div id="loading">Loading</div> 
<img id="image" src="image.png" style="display:none"/> 

<script> 
    $('#image').load(function() 
    { 
     $('#loading').hide(); 
     $(this).show(); 
    }); 
</script> 
+0

- ..謝謝! – Jurudocs 2012-04-16 20:16:46

+0

我嘗試爲此創建一個小提琴...所以每個人都可以按照 – Jurudocs 2012-04-16 20:19:52

+0

的任何幫助嗎? http://jsfiddle.net/FjfvZ/ – Jurudocs 2012-04-16 20:48:09

1

您可以使用一個小的加載圖像作爲背景圖像,一旦加載後它將被實際圖像覆蓋。

這是jsFiddle example

+0

謝謝很多!但我的情況下,HTML圖像已經在dom中。我可以隱藏它,然後再次顯示它...但是我需要的是事件或者是在圖像加載過程中發生的事情...... – Jurudocs 2012-04-16 20:16:03

3

我會從CSS做,如設置加載動畫圖像作爲選擇圖像的背景:

CSS:

img.loader { 
    background: url(loader.gif) 50% 50% no-repeat; 
} 

HTML:

<div class="image-container"> 
    <img id="firstslide" class="loader" style="width: 100px; height: 100px;" src="img/verybig.jpg" alt=""/> 
</div> 
+0

只是好奇:除了'50%50%'''不會'中心'也工作?我覺得'50%50%'會將左邊界和上邊界放置在中心,而不是圖像的中心到中心...... – VictorKilo 2012-04-16 20:02:52

+0

這是一樣的。我使用'50%50%',這對我來說更具可讀性。 – 2012-04-16 20:04:54

+0

不,這是相同的:http://www.w3.org/TR/CSS21/colors.html#propdef-background-position – 2012-04-16 20:05:21