我有一个图像缩放功能,可以按比例调整图像大小 . 在每个图像上加载一个调用此函数的图像,如果其宽度或高度大于我的最大宽度和最大高度,则调整大小 . 我可以在FF Chrome Opera Safari中获得img.width和img.height,但是IE失败了 . 我怎么处理这个?
让我用一段代码来解释 .
<img src="images/img01.png" onload="window.onImageLoad(this, 120, 120)" />
function onImageLoad(img, maxWidth, maxHeight) {
var width = img.width; // Problem is in here
var height = img.height // Problem is in here
}
在我的高亮度行中,img.width不适用于IE系列 .
有什么建议吗?
谢谢 .
8 回答
不要使用
width
和height
. 请改用naturalWidth
和naturalHeight
. 它们提供了图像文件中未缩放图像尺寸的图像,可以在浏览器中使用 .伙计,我正在寻找这个2天 . 谢谢 .
我正在使用jQuery,但它并不重要 . 问题与IE中的javascript有关 .
我之前的代码:
这适用于FF,Opera和Safari,但没有IE . 我在IE中得到'0' .
我的解决方法:
这就是我解决它的方式(因为它是网站上我唯一不想使用库的js) .
它's because IE can' t计算
display: none
图像的宽度和高度 . 请改用visibility: hidden
.尝试
我试试这个:
编辑 - 显然,如果我尝试我'd learn it doesn' t工作:-)好吧,好的"width"和"height"肯定似乎是
<img>
元素的属性,就IE而言 . 也许问题是"load"事件在错误的时间触发了元素 . 为了检查是否是这种情况,我会尝试这样做: