この記事では、画像ウォーターフォールフローを実現するためのJSの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。 プロセス: 1. すべての画像を保存するモジュール bigblock を作成します。 <!DOCTYPE html> <html> <head lang="ja"> <メタ文字セット="UTF-8"> <title>写真の滝</title> <スタイル> *{ マージン:0; パディング:0; } 体{ /* 背景: #ebebeb;*/ 背景: url(./img/bging2.jpg); 背景サイズ:100% ; 高さ:100%; } .bigblock { 位置: 相対的; 幅:650ピクセル; 最小高さ: 200px; 背景: #fff; マージン:自動; } .smallblock{ 位置:絶対; 幅:100ピクセル; 境界線の半径:5px; ボックスの影: 0 0 7px #89c8eb; ボックスのサイズ: 境界線ボックス; オーバーフロー: 非表示; } 。写真{ 幅:100%; 垂直位置合わせ: 中央; } </スタイル> </head> <本文> <div class="bigblock"> </div> <スクリプト> var Big = document.getElementsByClassName("bigblock")[0]; var ele = []; var 数値 = 6; var bghight=0; var 開始 = 0; var image_img=["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg", "6.jpg", "7.jpg", "9.jpg", "10.jpg", "11.jpg", "12.jpg", "13.jpg", "14.jpg", "15.jpg", "16.jpg", "17.jpg"]; (var i=0;i<50;i++){ リスト(); } 関数リスト(n){ var small = document.createElement("div"); var image = document.createElement("img"); small.className="スモールブロック"; image.className="写真"; image.src="./img/"+image_img[parseInt(Math.random()* image_img.length)]; //0-12 ele.push(小さい); Big.appendChild(小さい); small.appendChild (画像); } 関数set_position(){ for(var i=start;i<ele.length;i++){ //各画像の位置を設定します var settop=i <num ? 0: ele[i-num].offsetHeight +10 + ele[i-num].offsetTop; ele[i].style.top=settop+"px"; var setleft = i %num * ele[i].offsetWidth + (i % num) * 10; ele[i].style.left=setleft+"px"; //背景の高さを取得します bghight =(ele[i].offsetHeight +ele[i].offsetTop)>bghight ? ele[i].offsetHeight +ele[i].offsetTop :bghight ; Big.style.height =bghight + "px"; } } window.onload = 関数(){ 位置を設定します。 //ブラウザのスクロールバーイベントを追加します。this.addEventListener ("scroll", function() { var b_height=document.body.clientHeight; if(parseInt (this.pageYOffset + this.innerHeight) > b_height - 10){ 開始 =ele.length; (i=0;i<30;i++){ リスト(); } 位置を設定します。 } // console.log(b_height); // 本体の表示可能な高さ、変数 // console.log(this.pageYOffset); // スクロールバーの上部オフセット // console.log(this.innerHeight); // ブラウザの表示領域の高さ}) } </スクリプト> </本文> </html> 画像は動的な画像ではないので効果は見られませんが、コードは正しいので試してみることができます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQLでデータテーブルを作成するときにエンジンMyISAM/InnoDBを設定する
たとえば、新しいテーブルを作成したり、既存のテーブルのデータを更新したりすると、これらのイベントは、...
目次日時タイムスタンプ選び方ミリ秒の時間を保存する方法結論MySQL は、日付と時刻を処理するために...
質問Docker が elasticsearch をインストールして起動するときにメモリが不足するシ...
序文指定した文字による結合または分割は一般的なシナリオです。MySQL では結合の記述は比較的簡単で...
質問1 解決するサービスを開始します: service mysqld start; /sbin/ip...
1.html <div class="ログインボディ"> <...
目次質問再生暗黙的な変換要約する参照する質問仕事中、1 つの SQL クエリ ステートメントのみを実...
この axios パッケージは、vue3 デモで使用されます。便宜上、element-plus は ...
以前、プロジェクトを開発しているときに、flex レイアウトと position:absolute/...
コンテナ内でコマンドを実行したいが、コンテナに入りたくない場合があります。ではどうすればいいでしょう...
目次環境説明Windows 10 に Docker for Windows をインストールするWin...
まず、私の日常生活についてお話しします。MySQLの急速なアップデートにより、MySQLはバージョン...
目次序文1. MySQLをアンインストールする2. MySQLをインストールする要約する序文学習中に...
構造関連タグ--------------------------------------------...
MySQL による CPU 負荷の上昇今日の午後、MySQL によってサーバーの負荷が高くなる問題を...