1

画像のサイズがどのように決定されたかに関係なく、画像が読み込まれた後、画像の幅と高さを取得する必要があるプラグインを使用しています。

<img src=".." width="500" height="500" />                <!-- works fine -->
<img src=".." style="width: 500px; height: 500px;" />    <!-- works fine -->
<img src=".." width="500" />                             <!-- only gives me width -->
<img src=".." style="width: 500px;" />                   <!-- only gives me width -->
<img src=".." style="width: 500px; height: auto;" />     <!-- only gives me width -->
<img src=".." />                                         <!-- doesn't work at all -->

画像を読み込んでその寸法を取得しようとしましたが、ページに表示されるサイズではなく、画像の実際のサイズしか取得できませんでした。

幅/高さを取得するために使用するコード:

img.innerWidth();

私も試しました:

$('<img/>').hide().attr('src',img.src).load(function() {
    img.Owidth = $(this).width();
    img.Oheight = $(this).height();
}).appendTo($('body'));

と:

$("<img/>").attr("src", img.attr("src")).load(function() {
   img.width = this.width;
   img.height = this.height;
});

これは、画像の元のサイズを取得するのに役立ちますが、読み込まれて表示されるときのサイズではありません。

4

4 に答える 4

1

私の解決策

img.clone().load(function() {
    img.Dwidth = $(this).width();
    img.Dheight = $(this).height();
}).appendTo(img.parent()).hide();

表示サイズを取得するには、私の特定のケースでは、要素のクローンを作成し、再読み込みして、サイズを取得する必要がありました。

于 2012-11-16T14:02:58.810 に答える
0

jQueryを使用するwidthheight、計算を取得する必要があります。また、アイテムが表示されている場合は常に0になります。以下のようにコードを更新すると、動作するはずです。

$('<img/>').attr('src',img.src).load(function() {
    img.Owidth = $(this).width();
    img.Oheight = $(this).height();
}).appendTo($('body')).hide();

理解できるように、2 番目のブロックで this.width の代わりに $(this).width() を使用した場合は機能するはずです。

于 2012-11-16T13:10:54.920 に答える
0
var getheight = function () {
var img = document.getElementById("pic");
var img_width = img.clientWidth;
}

画像が読み込まれた後にこの関数を呼び出します。clientWidth 属性は、読み込まれた後の画像サイズを示します

于 2015-10-12T06:52:06.227 に答える