假设这个网站:如何获取新加载的图像的宽度/自然宽度?
<img src="thumbnail/img.png">
<div class="frame">
</div>
缩略图在于他们叫thumbnail
自己的目录,而他们提到的常规尺寸的图像是regular
被发现。缩略图连接的事件监听器的行为像这样在点击(即e
作为参数传递的事件):
var src = $(e.target).attr("src");
var path = "regular/" + src.slice(src.lastIndexOf("/") + 1);
所以我放入变量path
在这种情况下是regular/img.png
。接下来,我想frame
采取图像在path
作为背景,并调整其大小,但奇怪的事情发生:
var image = new Image();
image.src = path;
console.log(image.width); // weirdness starts here
// same behavior with .naturalWidth
我期望控制台显示image
的宽度,但我得到的是一个0
。 只有在第一次点击时,通过:任何进一步的点击产生正确的值。
这是为什么?
这是因为当您调用'width()'时,图像尚未加载。您需要在'img'中添加一个'load()'事件处理函数,并在其中获取宽度。 –
@Kaiido我没有downvoted任何东西?这与FBlite有什么关系? –