[解決済み] divを越えて下にスクロールした場合、画面上部に固着するようにする [重複].
2022-12-20 05:34:09
質問
私は、ページが最初にロードされたとき、上から約100pxにあるdivを持っています(それはページのためのいくつかのボタンなどを保持します)。
ユーザーがスクロールして通過するとき、div が画面の上部に取り付けられるように、ユーザーに "follow"させたいと考えています。ユーザーがページのトップに戻ったとき、元の位置に戻したいのです。
Visualization - xxxxx is the div:
Default (page load) User vertically scrolled well past it
--------- ---------
| | |xxxxxxx| < after div reaches top of screen when
|xxxxxxx| | | page is scrolled vertically, it stays
| | | | there
--------- ---------
どのように解決するのですか?
コツは、position:fixedとして、ユーザーがスクロールして通り過ぎた後でないと設定できないことです。
これは次のような方法で行います。window.scrollイベントにハンドラをアタッチします。
// Cache selectors outside callback for performance.
var $window = $(window),
$stickyEl = $('#the-sticky-div'),
elTop = $stickyEl.offset().top;
$window.scroll(function() {
$stickyEl.toggleClass('sticky', $window.scrollTop() > elTop);
});
これは単に
sticky
CSS クラスを追加し、ページがスクロールしてそれを通り過ぎたときにそのクラスを削除します。
そして、CSSクラスは次のようになります。
#the-sticky-div.sticky {
position: fixed;
top: 0;
}
EDIT- jQueryのオブジェクトをキャッシュするようにコードを修正しました。
関連
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] JavaScript/jQueryでページの一番上にスクロールするには?
-
[解決済み] Positioning <div> element at center of screen
-
[解決済み] jQueryを使用してDIVを画面の中央に配置する
-
[解決済み] ユーザーが上にスクロールしない限り、overflow div は下にスクロールされたままになる
-
[解決済み】CSSによる固定divの水平方向のセンタリング?
-
[解決済み】ユーザーが一番下までスクロールしたかどうかを確認する(ウィンドウだけでなく、任意の要素)【重複】。
-
[解決済み] HTMLでページ更新時にページのスクロール位置を強制的にトップにする
-
[解決済み] ページを上下にスクロールしても、divは画面の中央に表示される?
-
[解決済み] ECMAScriptとは?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 一度スクロールしたdivを画面の一番上に張り付けるにはどうしたらいいですか?
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] Javascriptによるタッチスクリーンデバイスの検出
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] JavaScriptで長い配列を小さい配列に分割する方法
-
[解決済み] これは純関数ですか?
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?