我正在寻找一种检测图像方向(横向或纵向)的方法。 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/
非常感谢任何想法。