[解決済み] テーブルのヘッダーをjQueryで固定し、ユーザーがスクロールして見えなくなったときにも固定されるようにする。
2022-04-23 21:06:56
質問
HTMLのテーブルをデザインしようとしているのですが、ユーザーがヘッダーをスクロールして見えなくなったときでも、ヘッダーがページの一番上にあるようにしたいのですが、可能でしょうか? 例えば、テーブルがページから500ピクセル下にある場合、ユーザーがヘッダーをスクロールして視界から外しても(ブラウザがウィンドウズビューでなくなったことを検知して)、トップに表示されたままにするにはどうすればよいでしょうか? どなたか、Javascriptで解決できる方法を教えてください。
<table>
<thead>
<tr>
<th>Col1</th>
<th>Col2</th>
<th>Col3</th>
</tr>
</thead>
<tbody>
<tr>
<td>info</td>
<td>info</td>
<td>info</td>
</tr>
<tr>
<td>info</td>
<td>info</td>
<td>info</td>
</tr>
<tr>
<td>info</td>
<td>info</td>
<td>info</td>
</tr>
</tbody>
</table>
つまり、上記の例では
<thead>
が表示されなくなった場合、ページと一緒にスクロールするようにします。
重要:私は
NOT
を使用した解決策を探しています。
<tbody>
にはスクロールバー(overflow:auto)が表示されます。
解決方法は?
を叩いて、このようなことをするのでしょう。
scroll
イベントハンドラ
window
を使用し、別の
table
を固定位置で表示し、ページ上部にヘッダーを表示します。
HTMLです。
<table id="header-fixed"></table>
CSSです。
#header-fixed {
position: fixed;
top: 0px; display:none;
background-color:white;
}
JavaScriptです。
var tableOffset = $("#table-1").offset().top;
var $header = $("#table-1 > thead").clone();
var $fixedHeader = $("#header-fixed").append($header);
$(window).bind("scroll", function() {
var offset = $(this).scrollTop();
if (offset >= tableOffset && $fixedHeader.is(":hidden")) {
$fixedHeader.show();
}
else if (offset < tableOffset) {
$fixedHeader.hide();
}
});
これは、ユーザーが元のテーブルヘッドを隠すのに十分なほど下にスクロールしたときに、テーブルヘッドを表示します。 また、ユーザーがページを十分に上方にスクロールしたときに再び隠れます。
関連
-
[解決済み] ユーザーがDIVの外側をクリックしたときに、jQueryを使用してDIVを非表示にする
-
[解決済み] jQueryでJavaScriptオブジェクトから選択する際に、オプションを追加する最も良い方法は何ですか?
-
[解決済み] JQueryでラジオボタンがチェックされているかどうかを調べる?
-
[解決済み] jQueryを使ってロールオーバー時に画像ソースを変更する
-
[解決済み] jQuery セレクタ。Id Ends With?
-
[解決済み] jQueryで多段式フォームをリセットする
-
[解決済み] ユーザーが上にスクロールしない限り、overflow div は下にスクロールされたままになる
-
[解決済み] jQuery append() - 追記された要素を返す
-
[解決済み] jQueryを使用して文字列から最後の文字を削除する方法は?
-
[解決済み] 大きなテーブルを表示すると、HTMLのテーブルヘッダが常にウィンドウの上部に表示される
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Uncaught SyntaxError: 予期しない入力の終了
-
[解決済み] GoogleのホストされたjQueryを使用する最良の方法、しかしGoogleの私のホストされたライブラリにフォールバックすることは失敗します。
-
[解決済み] Select <a> which href ends with some string
-
[解決済み] Bootstrapのモーダルを閉じる
-
[解決済み] jQueryを使用して配列から特定の値を削除する方法
-
[解決済み] jQueryでloading spinnerを表示するには?
-
[解決済み] jQuery セレクタ。Id Ends With?
-
[解決済み] jQueryを使用してspanに値を設定する方法
-
[解決済み] jQuery / JavaScriptでJSONデータをパースする方法は?
-
[解決済み] 大きなテーブルを表示すると、HTMLのテーブルヘッダが常にウィンドウの上部に表示される