画像の向き(横向きまたは縦向き)を検出する方法を見つけようとしています。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が許す限り遠くにあります(それは独自の自動スクリプトを追加するので)、理論的にはスクリプトの前に画像が読み込まれます。 –