我在网页上有一张图片,已经被缩放适应一个div容器,比如说400x300。如何在jQuery中获取这张图片的原始大小(约为4000x3000)?.width()和.height()只会返回当前图片的大小。
我在网页上有一张图片,已经被缩放适应一个div容器,比如说400x300。如何在jQuery中获取这张图片的原始大小(约为4000x3000)?.width()和.height()只会返回当前图片的大小。
图片具有 naturalWidth
和 naturalHeight
属性,其中包含图像的实际、未修改的宽度和高度,即图像的真实尺寸,而不是 CSS 设置的尺寸。
不过,仍然需要等待图像加载。
$('#idOfMyimg').on('load', function() {
var height = this.naturalHeight,
width = this.naturalWidth;
});
另一个选项是使用与源文件相同的文件创建新图像,并从中获取尺寸,只要它从未添加到DOM,外部样式就不会影响它。
var img = new Image();
img.onload = function() {
var height = this.height,
width = this.width;
}
img.src = $('#idOfMyimg').attr('src');
$(function() {
var img = $('#kitteh'); // image selector
var hiddenImg = img.clone().css('visibility', 'hidden').removeAttr('height').removeAttr('width').appendTo('body');
$('#height').text(hiddenImg.height());
$('#width').text(hiddenImg.width());
hiddenImg.remove();
});
您可以使用一个包含相同源文件的Image
对象来实现此功能,例如:
var preloader = new Image();
preloader.src = 'path/to/my/file.jpg';
preloader.onload = function(){
var height = preloader.height;
var width = preloader.width;
}