この記事の例では、テーブル行データのスクロール効果を実現するためのjQueryの具体的なコードを参考までに共有しています。具体的な内容は次のとおりです。 HTMLコード: <div class="box"> <div class="box-header"> <div class="col">テスト 1</div> <div class="col">テスト 2</div> <div class="col">テスト 3</div> <div class="col">テスト 4</div> </div> <div id="font-scroll"> <div class="box-body"> <div class="row"> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> </div> <div class="row"> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> </div> <div class="row"> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> </div> <div class="row"> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> </div> <div class="row"> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> </div> <div class="row"> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> </div> <div class="row"> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> </div> <div class="row"> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> </div> <div class="row"> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> <div class="col">テストテキスト</div> </div> </div> </div> </div> CSS スタイルコード: 。箱 { 幅: 400ピクセル; テキスト配置: 中央; フォントサイズ: 14px; 境界線: 1px実線 rgba(0, 0, 0, .3); } .box .box-header { ディスプレイ: フレックス; コンテンツの均等配置: スペースを均等に; } .box-body .row { ディスプレイ: フレックス; コンテンツの均等配置: スペースを均等に; } .box-header、 .box-body .row { border-bottom: 1px 破線 #404040; } .box .col { パディング: 10px 0 10px 0; } .box .col:n番目の子(1) { 幅: 80ピクセル; } .box .col:n番目の子(2) { 幅: 60ピクセル; } .box .col:n番目の子(3) { 幅: 80ピクセル; } .box .col:n番目の子(4) { 幅: 60ピクセル; } /* コンテンツのスクロール */ #フォントスクロール{ /* コンテンツのスクロール表示の高さ*/ 高さ: 199px; オーバーフロー: 非表示; } JSコード: (関数 ($) { $.fn.FontScroll = 関数 (オプション) { d = { 時間: 1000 } とします。 オプションを拡張します。 // スクロールする必要があるdiv親ボックスlet box = this[0] // スクロール間隔 let _time = d.time // この方法は、各データ行の高さが同じ場合にのみ適しています // // 各スクロールの高さ (通常はデータ行の高さ) // _contentChildHeight = box.children[0].children[0].offsetHeight とします // // 合計スクロール高さ、つまりコンテンツの合計高さ(すべてのデータの合計高さ) // _contentTotalHeight = _contentChildHeight * box.children[0].children.lengthとする // この方法は、各行のデータの高さが異なる場合も含め、あらゆるケースに適しています // すべての行要素を取得します let all_row_el = box.children[0].children // 行の合計の高さ let _contentTotalHeight = 0 // 各データ行の重ね合わせの高さと、それ以前のすべての行の高さ let _contentChildHeight = [] for (let i in all_row_el) { if ((新しい正規表現("^\\d+$")).test(i)) { _itemHeight = all_row_el[i].offsetHeight _contentTotalHeight += _itemHeight i == 0 ? _contentChildHeight.push(_itemHeight) : _contentChildHeight.push(_contentChildHeight[i - 1] + _itemHeight) } } // スクロールする必要がある div サブボックス let child1 = this.children('.box-body') // スクロール div 子ボックスを複製します // 複製メソッド 1 // let child1 = this.children('.box-body')[0] // child2 = this.children('.box-body')[1] とします // 子2.innerHTML = 子1.innerHTML // クローンメソッド 2 if ((box.offsetHeight + 5) < _contentTotalHeight) { // データが特定の高さに達しない場合、スクロール効果は実行されません child1.clone().insertAfter(child1) /*タイマーを開始する*/ タイマーをsetInterval(autoScrollLine, 30)に設定します。 /* 1行スクロールアップ効果 */ 関数 autoScrollLine() { /* スクロールコンテンツがスクロールされたかどうかを判断し、スクロールされた場合はスクロール値を 0 にリセットします それ以外の場合は、30ミリ秒ごとに1ピクセル上にスクロールします*/ box.scrollTop >= _contentTotalHeight の場合 { ボックスのスクロールトップ = 0; } それ以外 { ボックスのスクロールトップ++; } /* スクロール距離がデータ行の高さとちょうど同じになったらタイマーを停止します。 データのスクロール効果を実現するには、_time 後にタイマーを再起動します*/ _contentChildHeight.indexOf(box.scrollTop) >= 0 の場合 クリアインターバル(タイマー) タイムアウトを設定する(() => { タイマー = setInterval(autoScrollLine, 30) }、 _時間) } } } } })(jQuery); 方向: $('#font-scroll').FontScroll({ 時間: 1000 }); 効果画像: 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Linux ps および pstree コマンドの知識ポイントのまとめ
>>: MySQL ルートパスワードを変更する 4 つの方法 (要約)
Nginx の主な設定ファイルは nginx.conf で、グローバル ブロック、イベント ブロック...
負荷分散とは負荷分散は主に、専用のハードウェア デバイスまたはソフトウェア アルゴリズムによって実現...
序文前回の記事ではNode.jsのインストールと設定を紹介しました。今回はVScodeでbableを...
1. プロジェクトwarが保存されているディレクトリを入力しますDockerfileを編集する vi...
LinuxでのMySQL5.7 rpmのインストール方法を参考までに記録します。具体的な内容は以下の...
両側に隙間なし、各列間に隙間あり 幅: 100%; 表示: グリッド; グリッドテンプレート列: r...
「downloadlaod」を直接クリックしてもダウンロードできない場合は、ここからダウンロードす...
目次概要フレームワークを選択する理由は何ですか? js のエンバーEmber.js と Vue.js...
目次アプリ.vueサブ1.vueサブ2.vue要約する vue2 における非親子コンポーネントの値の...
序文1. この記事で使用したツールは、https://github.com/gianlucabore...
Pantherは新人としてスタートし、今もまだ新人ですが、人々から学び、学んだことを時々皆さんと共有...
目次要件の説明問題の説明問題分析問題解決質問の拡張要件の説明このプロジェクトでは、まずユーザーが質問...
docker リポジトリ自体は非常に遅いですが、中国の Alibaba Cloud ミラー リポジト...
今日は、Windows 10 で Linux サブシステムを有効にする方法を紹介します。早速、手順を...
この記事の例では、参考のために簡単なリスト機能を実装するアプレットの具体的なコードを共有しています。...