画像がまだ読み込まれていないため、画像タグはそこにありますが、まだ画像が読み込まれているためにサイズが設定されていないため動作しません。
私を次のようにコードを変更したい:
function matchSize() {
var getTurHeight = $(this).parents(".tur-list").find(".col-lg-7").outerHeight();
var getLeftHeight = $(this).parents("tur-list").find(".col-lg-5 figure img").outerHeight();
if (getTurHeight > getLeftHeight) {
$(this).outerHeight(getTurHeight);
}
}
function onResize() {
$(".tur-list .col-lg-5 figure img").each(matchSize);
}
function getListHeight() {
$(".tur-list .col-lg-5 figure img").load(matchSize);
}
$(document).ready(function(){
getListHeight();
$(document).on('resize', onResize)
onResize()
});
これは(おそらくキャッシュされた画像)でのJavaScriptのキックの前にリサイズに、新しくロードされた画像上、および以前にロードされた画像上で動作します。 https://codepen.io/Bamieh/pen/gRLPqm
P.S.:ここ
はcodepenフォークへのリンクです私はあなたがスタイルを変更するとすぐにコードが破損するので、セレクタとしてcol-*
クラスに頼らないことをお勧めします。data-*
属性を使用して、私の意見になる方法です。
ドキュメントの準備ではなく(または追加して)ウィンドウロードで呼び出す –
同期の問題?これは、document.ready()イベントが発生したときに、まだロードされていないイメージがあるためですか?フルロード後に関数がresize()イベントで機能する場所を記述した症状は、document.ready()がまだすべての要素を持っていないことを示唆しています。 Document.ready()はイメージがロードされるのを待たずにいると思います。 –
@モート・バードワイより最近ロードされているので、これは私が望むものではありません。@征服されたウォンバットなので、どうすれば自分のコードを変更できますか? –