可能重复:
确定图像跨浏览器的原始大小?
jquery获取图片大小
有人可以告诉我如何使用 JS / JQ 获得图像的实际大小吗?谢谢 !从这个网站尝试了很多解决方案,但没有成功......
var selector = $(".album_pics > img[id="+img_id+"]") ;
var old_width = selector.width() ;
没用。。
可能重复:
确定图像跨浏览器的原始大小?
jquery获取图片大小
有人可以告诉我如何使用 JS / JQ 获得图像的实际大小吗?谢谢 !从这个网站尝试了很多解决方案,但没有成功......
var selector = $(".album_pics > img[id="+img_id+"]") ;
var old_width = selector.width() ;
没用。。
您可以使用该naturalWidth
属性:
var img = document.getElementById('imageToTest'), // or whatever...
width = img.naturalWidth;
当然,这确实需要在执行 JavaScript 之前有时间加载图像(因此,在 jQuery 中,使用该$(window).load()
方法)。它也是仅 HTML5 的(直到我刚刚检查过,我才意识到这一点)。
顺便说一句,正如名称所暗示的那样,还有naturalHeight
财产(如果有用的话)。
更新以添加功能更强大的方法:
function showNaturalInfo(el) {
if (!el || el.tagName.toLowerCase() !== 'img') {
return false;
}
else {
var w = el.naturalWidth,
h = el.naturalHeight,
D = document,
details = D.createElement('span'),
detailsText = D.createTextNode('Natural width: ' + w + 'px; natural height: ' + h + 'px.');
details.appendChild(detailsText);
el.title = 'Natural width: ' + w + 'px; natural height: ' + h + 'px.';
el.parentNode.insertBefore(details, el.nextSibling);
}
}
var imgs = document.getElementsByTagName('img');
for (var i = 0, len = imgs.length; i < len; i++) {
showNaturalInfo(imgs[i]);
}
参考: