0

重複の可能性:
Javascript - URL からリモート画像の幅/高さを返す関数

jsで画像の場所を知るだけで幅と高さを取得することはできますか? 実際の画像は DOM に読み込まれません。私はこれをjQueryで試してきましたが、まだ運がありません。

var img = $('<img>').attr('src', 'images/logo.png');
console.log($(img).width());

0 を返します。

4

3 に答える 3

2

いいえ、画像は 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

于 2013-02-03T17:24:33.260 に答える
1

残念ながら、幅/高さを計算するには、画像が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...
于 2013-02-03T17:12:11.680 に答える
0

残念ながら、Rory McCrossan が既に提案しているように、JQuery を使用する場合、width() または height() 関数が 0 以外を返す前に、要素を DOM に追加する必要があります

非表示の要素がある場合も、幅/高さ 0 が返されます。

于 2013-02-03T17:27:17.290 に答える