JSは画像の滝の流れの効果を実現します

JSは画像の滝の流れの効果を実現します

この記事では、画像ウォーターフォールフローを実現するためのJSの具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

プロセス:

1. すべての画像を保存するモジュール bigblock を作成します。
2. この大きなモジュールを取得し、小さな画像を保持するためのサブ要素ブロックを追加します。
3. 関数list(n)をカプセル化して50枚の写真を保存し、各写真を空の配列ele[]に追加します。
4. offsetHeight、offsetTop、offsetWidth などの属性を使用して各画像の位置を決定する関数 set_position() をカプセル化し、最大ブロックの動的な高さを設定します。読み込まれる画像の数が増えると、最大ブロックの高さも増加します。
5. window.onload イベントを使用して、画像をより便利に読み込みます。
6. ブラウザのスクロール バーにイベントを追加します。スクロール バーが本体の表示領域の下部から 10 ピクセル上にスライドすると、30 枚の新しい写真が読み込まれ、そのたびにスクロール バーは読み込まれたばかりの写真の位置に留まります。

<!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 を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • js を使用してウォーターフォール効果を実現する
  • jsはウォーターフォールフローのボトムアウトによるデータの動的ロードを実現します
  • JS を使用して Web ページのウォーターフォール レイアウトを実装する方法
  • ウォーターフォールフローレイアウト(無限読み込み)を実現する js
  • JavaScript でウォーターフォールレイアウトを実装する 3 つの方法
  • JavaScript ウォーターフォールフローを実装する方法を学びましたか?

<<:  MySQLでデータテーブルを作成するときにエンジンMyISAM/InnoDBを設定する

>>:  ウェブメッセージボード機能を実現するjs

推薦する

CSS3は、ズームと回転を実現するためにscale()とrotate()を使用します。

1. scale() メソッドズームとは「縮小」と「拡大」を意味します。 CSS3 では、scal...

Centos7.6にTomcat-8.5.39をインストールする方法

Centos7.6 に Tomcat-8.5.39 をインストールする方法は次のとおりです。詳細は次...

MySQL の遅いクエリの最適化方法と最適化の原則

1. 日付のサイズを比較するには、XML に渡される日付形式は 'yyyy-MM-dd...

Vue Element フロントエンドアプリケーション開発 従来の Element インターフェースコンポーネント

目次1. リストインターフェースとその他のモジュールの表示処理2. 従来のインターフェースコンポーネ...

Reactでレシピシステムを実装する方法を解説した記事

目次1. レシピ集1.1 プロジェクトの背景1.2 テクノロジースタック1.3 開発環境1.4. プ...

MySQLデータベースは何をするのか

MySQL は、スウェーデンの会社 MySQL AB によって開発されたリレーショナル データベース...

CSS 共通スタイルで二重矢印を描画するサンプルコード

1. 単一の矢印への複数の呼び出し単一の矢印を実装したら、二重矢印を実装するのは簡単です。上では、単...

実行中の時計を実装するための純粋な CSS3 コード

操作効果コードの実装html <div id="ウォッチ"> <...

Docker+Nginx を使ってシングルページアプリケーションをデプロイする

開発から導入まで自分で行うシングルページアプリケーションを開発する場合、ビルドを実行した後 npm ...

MySQL オンラインリカバリ UNDO テーブルスペース 実戦記録

1 MySQL5.6 1.1 関連パラメータMySQL 5.6 では、innodb_undo_dir...

CSS3で実装されたスライドメニュー

結果:実装コード: <!DOCTYPE html><html class=&quo...

Dockerを使用してLaravelおよびVueプロジェクトの開発環境を構築する詳細な説明

この記事では、Docker で構築された Laravel および Vue プロジェクトの開発環境を紹...

Mysql の varchar 型に関する注意点

varchar の保存ルール4.0 未満のバージョンでは、varchar(20) は 20 バイトを...

JavaScript のカンマ式が含まれている場合について

JavaScript の if ステートメントで英語のカンマ「,」が表示されることがあります。これは...

JavaScript キャンバス テキスト クロック

この記事では、テキストクロックを実装するためのキャンバスの具体的なコードを例として紹介します。具体的...