jsで画像の場所を知るだけで幅と高さを取得することはできますか? 実際の画像は DOM に読み込まれません。私はこれをjQueryで試してきましたが、まだ運がありません。
var img = $('<img>').attr('src', 'images/logo.png');
console.log($(img).width());
0 を返します。
jsで画像の場所を知るだけで幅と高さを取得することはできますか? 実際の画像は DOM に読み込まれません。私はこれをjQueryで試してきましたが、まだ運がありません。
var img = $('<img>').attr('src', 'images/logo.png');
console.log($(img).width());
0 を返します。
いいえ、画像は DOM にある必要はありません。
var img = new Image();
img.onload = function(){
console.log(this.width);
};
img.src="images/logo.png";
ただし、その寸法を知る前にロードする必要があります
(onload 関数の後の src に注意してください)
ここにjsfiddleがあります:http://jsfiddle.net/fGUyz/2/
#NotMrDownVoter
残念ながら、幅/高さを計算するには、画像がDOMにある必要があります。
これをページに追加することでこれをごまかすことができますが、次のように画面から十分に離れた場所に配置します。
.offscreen {
position: absolute;
left: -9999px;
}
var $img = $('<img>', {
'src': 'images/logo.png',
'class': 'offscreen'
}).appendTo('body');
console.log($img.width());
$img.remove() // if required...
残念ながら、Rory McCrossan が既に提案しているように、JQuery を使用する場合、width() または height() 関数が 0 以外を返す前に、要素を DOM に追加する必要があります。
非表示の要素がある場合も、幅/高さ 0 が返されます。