私は、画面の中央に特定のクラスの画像を表示する単純なjQueryプラグインを作成しています(フルサイズのときはクリックします)。私はjQueryを使って、いくつかのアニメーションを作るところのonloadイベントを待つ、私はフルサイズの画像へのパスを置く「SRC」属性でGoogle Chromeでの画像の幅の問題
<div id="source">
<img src="" alt="" />
</div>
:私は私の画像が表示されているこのHTMLコードを、使用しています
$("#source img").load(function(){
var calcWidth = this.width + ...
});
オンロードイベントが発生したGoogle Chrome(およびGoogle Chromeのみ)では、this.width
は以前の画像の幅と同じです。つまり、最初に "src"を800px幅の "img/1.jpg"に設定したときはすべてOKですが、600px幅の "src"に2番目の画像 "img/2.jpg"を設定しようとすると、 this.width
はまだ800pxを返します(onloadイベントで!)。
この現象を説明するには?
はUPD:私はこのようにSRCを設定
:
function NavClick(){
$("#source img").attr({
src: $(this).attr("src")
});
currentImage = this.indx;
}
「これは」サムネイル画像に参照される、私は、テストのみのサムネイルとフルサイズの画像に対して同じSRCを使用します後で別のディレクトリに配置します。
このコードは、私の問題を解決するが、私は正確に理解していない理由:
function NavClick(){
$("#source img").attr({
src: "#"
});
$("#source img").attr({
src: $(this).attr("src")
});
currentImage = this.indx;
}
私はそれを設定し、新しいSRCを設定する前に「#」は、おそらくこれは、キャッシング・イメージによるものであるが、唯一のGoogleのクロムに表示されます。 。
'$(this).width()'を使うと、jQueryハンドラ内の現在のイメージ幅を読み込むことができます。 –
$(this).width()はthis.widthと等しい値を返します – Kai
画像のページの読み込み、空のsrc属性がソースと同じURLであることを意味するimg src = ""現在のページをロードする(POSTまたはGETでもかまいません)、SRC属性に少なくとも "#"を設定すると、何時間ものデバッグ時間を節約できます。 – regilero