2012-05-04 43 views
0

我正在處理一個畫廊類型的應用程序 - 一個模板放在一起彈出對話框點擊時縮略圖的大視圖。映像的服務器路徑作爲模板變量包含在內。由於動態圖像加載錯誤地計算對話框位置?

Gallery.Templates.Popup = "\ 
    <div class='popup'>\ 
     <img class='popup-image' src='{{image-path}}' />\ 
     <div class='name'>{{name}}</div>\ 
     <div class='caption'>{{caption}}</div>\ 
     <div class='dimensions'>{{dimensions}}</div>\ 
     <div class='price'>{{price}}</div>\ 
    </div> \ 
"; 

除非第一次加載圖像,否則這種方式非常有效。該對話框被構建並顯示,但是當html字符串被附加到dom時,它缺少圖像。它導致的問題是在定位對話框:

對話框定位在這樣的屏幕的中間: 左= window.width/2 - dialog.width/2

但由於圖像不存在,dialog.width變量不正確。再次,這隻發生在第一次點擊縮略圖時,我猜想圖像被緩存以用於隨後的點擊。

這是通過預取圖像以某種方式處理?如果是這樣,他們是否需要被連接到dom才能被緩存,或者我可以將它們加載到數組中嗎?

非常感謝!

回答

0

如果您可以提前從服務器獲取圖像大小,可以使用它來幫助您適當調整'.popup'div的大小。

這聽起來像是一個不好的主意,如果它們不需要預取圖像,我不能想出一種方法來確保特定的圖像在它被編程生成html之前加載。