2011-07-27 117 views
2

我目前正在構建一個網站並使用Shadowbox JS插件來顯示圖像。在IE中獲取圖像的「真實」寬度和高度

因爲我們通過JSP提供圖像(而不是直接鏈接到圖像文件),因此Shadowbox似乎無法動態確定它們的寬度和高度,因此只需在屏幕大小疊加中打開圖像。

有可能在使用「版本」的寬度和高度的太極拳插件手工傳遞,所以我用下面的代碼周圍FF /鉻/ Safari瀏覽器的問題了:

$('#pic1img').attr("src")).load(function() { 
      picWidth = this.width; 
      picHeight = this.height; 
    }); 

$(window).load(
      function() { 
       var w = $("#pic1img").width(); 
       var h = $("#pic1img").height(); 
       if(picWidth < w){ picWidth = w; } 
       if(picHeight < h){ picHeight = h; } 
       $('#pic1').attr('rel', 'shadowbox[pics];height=' + picHeight + ';width=' + picWidth); 
      } 
); 

但我在IE中找不到任何辦法做同樣的事情。

+0

IE中發生了什麼?你在尋找naturalWidth和naturalHeight屬性嗎? – EricLaw

回答

3

更換document.getElementById("pic1img").width代碼實際工作,一旦我開始在全尺寸加載縮略圖,然後加載後設置它們的寬度和高度。

的問題是,我周圍的div設置爲

display: none 

,直到圖像加載和IE瀏覽器不能工作了隱藏圖像的大小。

通過設置

visibility: hidden 

,而不是解決了這個。

+1

更多關於此主題:http://blogs.msdn.com/b/ieinternals/archive/2011/03/14/internet-explorer-hidden-images-styled-with-display-none-always-have-zero- 0-height.aspx – EricLaw

+0

除此之外,還可以使用'position:absolute'來防止隱藏的圖像在屏幕上佔用空間(在大多數情況下)。 –

1

$('#pick1img').width()

+0

是的,謝謝你(已編輯相應的問題) - 仍然有時忘記使用JQuery。雖然沒有幫助解決問題。 –