jsはウォーターフォールフローのボトムアウトによるデータの動的ロードを実現します

jsはウォーターフォールフローのボトムアウトによるデータの動的ロードを実現します

この記事では、ウォーターフォールフローが底に達したときにデータを動的にロードするためのjsの具体的なコードを紹介します。参考までに、具体的な内容は次のとおりです。


// onScrollEvent スクロールバーイベント <div class="box" ref="box" @mousewheel="onScrollEvent">
    //各ブロックの内容は
      <div class="boxItemStyle" v-for="(userTag, i) in dataSource" :key="i" ref="boxItemStyle">
        <a-tag class="moreStyle" @click="more(userTag.primaryParam)"> もっと見る></a-tag>
        <div v-for="item in userTag.userTag" :key="item.code">
          <p>
            {{item.name}}:
            {{ アイテム.値 }}
          </p>
        </div>
      </div>
      //各ブロックの内容終了
</div>

滝レイアウト

滝() {
  // 余白の幅を減算する var pageWidth = this.$refs.box.offsetWidth - 200
      var columns = 4; // 4 列の行を定義します var itemWidth = parseInt(pageWidth / columns);
      var arr = [];
      var ノード = document.getElementsByClassName("boxItemStyle")
      タイムアウトを設定する(() => {
        //var node1 = Array.from(ノード)
       // var node2 = Array.prototype.slice.call(nodes)
        (var i = 0; i < nodes.length; i++) の場合 {
          ノード[i].style.width = アイテム幅 + "px"
          if (i < 列) {
            ノード[i].style.width = アイテム幅 + "px"
            ノード[i].style.left = アイテム幅 * i + i * 50 + "px"
            ノード[i].style.top = 0
            arr.push(ノード[i].offsetHeight);
          } それ以外 {
            // 配列内の最小の高さとそのインデックスを見つけます var minHeight = arr[0];
            var インデックス = 0;
            (var j = 0; j < arr.length; j++) の場合 {
              (最小高さ>arr[j])の場合{
                最小高さ = arr[j];
                インデックス = j;
              }
            }
            ノード[i].style.top = arr[インデックス] + 30 + "px"、
              ノード[i].style.left = ノード[index].offsetLeft + 'px';
            // 最小列の高さを変更します // 最小列の高さ = 現在の高さ + 接合された列の高さ arr[index] = arr[index] + nodes[i].offsetHeight + 30; // 距離を 30 に設定します }
        }
      }, 1000)
    },

データを動的に読み込む

スクロールイベント(){
      もし (
        this.isScroll &&
        this.$refs.box.scrollHeight - this.$refs.box.scrollTop - this.$refs.box.clientHeight <= 0
      ){
        this.loading = true
        if (this.ipagination.current == 1) {
          this.ipagination.current += 1
        }
        パラメータを {} とします
        param['pageNo'] = this.ipagination.current
        param['pageSize'] = this.ipagination.pageSize
        param['portraitId'] = this.portraitId
        postAction(this.url.list, { ...param }).then((res) => {
          this.loading = false
          (res.成功)の場合{
            this.isScroll = res.records
            this.dataSource = this.dataSource.concat(res.result.records || res.result)
            this.waterFall();
          }
        })
        this.ipagination.current++
      }
    },

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

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

<<:  コード分​​析を実現するためのFastDFSとNginxの統合

>>:  MySQL で重複レコードを見つけて削除する方法

推薦する

React Nativeがシミュレータにリンクできない件について

React Native は、現在人気のオープンソース JavaScript ライブラリ React...

union (all) と limit および exists キーワードの使用法を理解するための MySQL シリーズチュートリアル

目次1.union: クエリ結果を追加できます1) すべてを結合: 重複を削除できません2) ユニオ...

Vue で AES.js を使用する詳細な手順

AES暗号化の使用データ転送の暗号化と復号化処理 --- AES.js最初のステップ: vue に ...

Node.js で簡単なクローラーケースを作成するチュートリアル

準備まず、nodejs をダウンロードする必要がありますが、これは問題ないはずです。原文はwebst...

MySQLデータベースが大きすぎる場合にバックアップと復元を行う方法

コマンド: mysqlhotcopyこのコマンドは、ファイルをコピーする前にテーブルをロックし、不完...

Javascript 非同期プログラミング: Promise を本当に理解していますか?

目次序文基本的な使い方文法エラー処理プロミスチェーン呼び出し非同期と待機よく使われる方法1. Pro...

JavaScriptのループの違いについての詳細な説明

目次序文列挙可能なプロパティ反復可能なオブジェクトforEachメソッドとmapメソッドチェーン呼び...

JavaScript 遅延読み込みの詳細な説明

目次遅延読み込みCSS スタイル: HTML部分:スクリプト部分:要約する遅延読み込み名前の通り、私...

純粋な CSS ドロップダウン メニュー

成果を達成する実装コードhtml <div id="コンテナ"> &...

Vue3 テーブルコンポーネントの使用

目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...

elasticsearchを使用してインデックスデータを定期的に削除する

1. ESを使うこともあるリソースが限られている、またはビジネス上のニーズにより、最新の期間のデータ...

VMware仮想マシンを使用してUbuntu 20.04をインストールする完全なチュートリアル

Ubuntu は比較的人気のある Linux デスクトップ システムです。最近、Ubuntu 20....

ネイティブ Js で実装されたシンプルなシームレス スクロール カルーセルのサンプル コード

シンプルなシームレススクロールカルーセルには多くの抜け穴があり、後から画像を追加するのは非常に不便で...

Linux Centos でスクリプトを使用して Docker をインストールする方法

Dockerの主な機能は何ですか?現在、Docker には少なくとも次のアプリケーション シナリオが...

MySQL で datetime 型のデフォルト値を設定する方法

Navicat クライアントを通じてデフォルトの日時値を変更する際に問題が発生しました。データベース...