2011-07-27 82 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。虽然没有帮助解决问题。 –

相关问题