我正在尝试通过ajax 将宽度和base64编码图像的高度加载为由浏览器计算,不是真实/原始大小,但浏览器计算显示图像的大小(所谓的clientWidth
)。我了解图片必须在获取图片之前加载,但我会继续zero
或undefined
。
这是我设法解决的最近的工作代码:
var image_sizes = {};
$('.picture').one('load', function() {
image_sizes.width = this.width;
image_sizes.height = this.height;
console.log(image_sizes.width);
}).each(function() {
if(this.complete) $(this).load();
});
但它返回真实/原始的宽度和高度。如果我使用this.width
更改this.clientWidth
,则会返回zero
。
我试过的其他代码甚至不起作用,因为图像是base64,它是通过ajax加载的。
解决
感谢以下评论中的Bobby Jack提示:
$('.picture')[0].width
如果在图像完全加载后检查宽度和高度,工作正常。