質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1915閲覧

jquery lazyload.js cssでulを左右に分けた場合の右側の読み込みがうまくいかない

sud55s

総合スコア18

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2018/06/06 09:10

編集2018/06/06 09:26

jquery lazyload.js を使用した画像の遅延読み込みですが、画像の様な読み込み順になってしまい右側の画像が上から読み込まれません。
ul class="ccc" の画像を上から読み込ませる方法はあるのでしょうか。

js Masonry や css display:grid、column-count は使用しない方法でお願いします。

よろしくおねがいします。

イメージ説明

html

1<div clas="aaa"> 2 <ul class="bbb"> 3 <li><img class="lazy" src="dummy.png" data-original="画像" alt="" /></li> 4 <li><img class="lazy" src="dummy.png" data-original="画像" alt="" /></li> 5 <li><img class="lazy" src="dummy.png" data-original="画像" alt="" /></li> 6 </ul> 7 <ul class="ccc"> 8 <li><img class="lazy" src="dummy.png" data-original="画像" alt="" /></li> 9 <li><img class="lazy" src="dummy.png" data-original="画像" alt="" /></li> 10 <li><img class="lazy" src="dummy.png" data-original="画像" alt="" /></li> 11 </ul> 12</div>

css

1.aaa { 2 width:100%; 3} 4 5.aaa ul{ 6 width:50%; 7 margin:0; 8 padding:0; 9 display:inline-block; 10 font-size:0; 11 vertical-align:top; 12} 13 14.aaa ul li{ 15 width:100%; 16 margin:0 0 10px 0; 17} 18 19.aaa ul li img{ 20 width:90%; 21 height:auto; 22 margin:0 5%; 23} 24

js

1<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 2<script src="lazyload.js"></script> 3<script> 4$(function() { 5 $('img.lazy').lazyload(); 6}); 7</script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

HTML の構造を変えたくないなら、JavaScript でどうにかするしかないかなと思います。
また、見える範囲に入った画像、もしくはその少し上までスクロールしたときに画像を読む込むタイプの Lazyload ライブラリを使えば一発で解決します。

どうしてもこの Lazyload プラグインを使いたい!というのであれば左右交互になるように配列を作って適用しましょう。

javascript

1var $aaaImages = []; 2var $bbbImages = $('.aaa > .bbb img.lazy'); 3var $cccImages = $('.aaa > .ccc img.lazy'); 4 5// 画像が多い方のリストをループに使う 6var itrTarget = 7 $bbbImages.length >= $cccImages.length ? $bbbImages : $cccImages; 8 9// 左右交互に配列に追加していく 10itrTarget.each(function(index) { 11 if ($bbbImages.length - 1 >= index) { 12 $aaaImages.push($bbbImages.get(index)); 13 } 14 15 if ($cccImages.length - 1 >= index) { 16 $aaaImages.push($cccImages.get(index)); 17 } 18}); 19 20// jQuery オブジェクトに変換する 21$aaaImages = $($aaaImages); 22 23// Lazyload を適用 24$aaaImages.lazyload();

投稿2018/06/06 12:20

yhg

総合スコア2161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sud55s

2018/06/07 01:04

どちらも理想のものです。ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問