我试图找到一种方法来检测图像(风景或人像)的方向。使用Javascript检测图像的方向
HTML只包含一些源代码已经被填充的img标签。然后,脚本应该检测到方向并将图像添加到动态创建的div中,作为缩略图。
我一直在使用这个脚本是这样的(发现它在这里的某个地方)
for (i = 0; i < pics.length; i++) {
pics[i].addEventListener("load", function() {
if (this.naturalHeight > this.naturalWidth) {
this.classList.add("portrait")
} else {
this.classList.add("landscape")
}
})
}
现在,这通常工作正常首先加载页面时。然而,当刷新时,它的行为不正常,给一些图像添加正确的类,而不向其他任何类添加任何类。
我也试过这个
for (i = 0; i < pics.length; i++) {
var img = pics[i];
var width = img.naturalWidth;
var height = img.naturalHeight;
if (height > width) {
img.classList.add("portrait")
} else {
img.classList.add("landscape")
}
}
也可以工作无法预测。所有图像都会添加一个类,但有些会得到错误的。
我猜这些问题可能来自图像没有完全加载之前的脚本运行,因此脚本不能够正确地测量它们,但我不知道。无论如何,我真的不知道如何解决它。
给什么我要去了我的想法,这里有一个链接的网页: http://pieterwouters.tumblr.com/
任何想法非常赞赏。
您的脚本位于页面顶部还是底部? – inarilo
这个脚本应该在页面加载完成后执行。你现在怎么执行它? –
它位于页面的底部,或者至少在tumblr允许的范围内(因为它添加了一些自己的自动脚本),因此理论上应该在脚本之前加载图像。 –