0
さて、私はWordpressのためのレイジーローディングとライトボックスを使って、高度なカスタムフィールドを使用して石積みのレイアウトスタイルギャラリーを作っています。石積みレイアウトとレイジーローディング画像を正しく積み重ねる方法は?
lightbox(fancybox-v3)とmasonryレイアウト(macy.js)が動作していますが、遅延ロードを追加すると問題が発生します。
は何をします:私はjQuery.lazyとmacy.jsでこれを実行すると、私はこのようなグラグラ視覚的な結果を得るjQuery.lazy
にここに私のループだ
<?php
// check if the repeater field has rows of data
if(have_rows('card')):
// loop through the rows of data
while (have_rows('card')) : the_row();
// display a sub field value inside a card
?> <div class="grid-item">
<?php
//VARIABLES//
$title = get_sub_field('card_title');
$childImage = get_sub_field('card_picture');
$file = get_sub_field('card_video');
$video = $file['url'];
// check for image
if($childImage): ?>
<a data-fancybox="gallery" data-caption="My caption" href="<?php
echo $childImage['url'];//big one here ?>">
<img class="lazy" data-src="<?php echo $childImage['url']; ?>">
</a>
<?php endif; ?>
//check for video
<?php if($video): ?>
<video class="gallery-video" loop autoplay>
<source src="<?php echo $video; ?>" type="video/mp4">
</video
<?php endif; ?>
</div> <?php
endwhile;
else :
// no rows found
endif;
?>
を使用しています下の方には画像の束が重なり合っているのを見ています。私はこれが怠け者であるため、macy.jsはそれらを高さで分ける方法を知らないからです。
これを修正する方法がわかりません。助言がありますか?
はまた、私はこの質問に答えるように思わklasskeことで Masonry and Lazy load integrationにこの答えを見つけましたが、私は基本的に
(私はコーディングに新しいあるデザイナーだ)、それを理解していませんKlasskeはadjustHeightsという新しい関数を作成してjQuery.lazyのオプションの中で呼び出すべきだと言っていますか?私はそれについて明確ではなかった。
イメージがロードされている前に、私の推測では、それがレイアウトをやっていますさ。しかし、[mcve]なしでは伝えにくいです。あなたはhttps://imagesloaded.desandro.com/のようなものを実装し、それが返ってからmacyを呼び出すことができます。 –
@MichaelCokerああ、それは私にも問題であるようです。これは間違った質問かもしれませんが、macy.js initスクリプトは基本的に同じことを実行しています。だから私は画像を読み込まれた機能にマシーのinit関数を挿入すると、基本的にすべての画像がロードされる毎回Macyが実行されますか?まだ