固定サイドバーを実装するにはJavaScriptを使用します。参考までに、具体的な内容は次のとおりです。 まだフロントエンドの勉強中です。コードに不備や間違った考えがあったらご容赦ください。アドバイスをよろしくお願いします。 特定のショッピングモールや特定のウェブサイトを閲覧しているとき、サイドバーと呼ばれるものによく遭遇します。これはブラウザの閲覧の長さに応じて変化し、ウィンドウに対して固定された位置を実現します。 **コードは以下のとおり** <!DOCTYPE html> <html lang="ja"> <ヘッド> <メタ文字セット="UTF-8"> <title>タイトル</title> <スタイル> 。cm{ 位置: 絶対; 上: 300px; 左マージン: 1150px; 幅: 60ピクセル; 高さ: 130px; 背景色: ピンク; } .w{ マージン: 10px 自動; 幅: 80%; } 。頭{ 高さ: 200px; 背景色: 青; } 。バナー{ 高さ: 400px; 背景色: 緑; } 。主要{ 高さ: 1000ピクセル; 背景色: ホットピンク; } スパン { 表示: なし; /*位置: 絶対; 下部: 0;*/ } </スタイル> </head> <本文> <div class="cm"> <span class="backTop">トップに戻る</span> </div> <div class="head w">ヘッドエリア</div> <div class="banner w">バナーエリア</div> <div class="main w">メインエリア</div> <スクリプト> var cm = document.querySelector('.cm') var バナー = document.querySelector('.banner') /*console.log(バナー.offsetTop)*/ // カールした頭のサイズと位置は外側に書き込まれます var Bannertop=banner.offsetTop var cmtop=cm.offsetTop-bannertop var main = document.querySelector('.main') var goback = document.querySelector('.backTop') var maintop=main.offsetTop document.addEventListener('スクロール',function() { //ページがロールアウトされます /*console.log(window.pageYOffset)*/ //curl ヘッダーが 214 より大きい場合、サイドバーは固定されます if (window.pageYOffset>bannertop){ cm.style.position='固定' cm.style.top=cmtop+'px' }それ以外 { cm.style.position='絶対' スタイルトップ='300px' } (window.pageYOffset>maintop)の場合{ goback.style.display='ブロック' }それ以外 { goback.style.display='なし' } }) </スクリプト> </本文> </html> デモンストレーション効果 コードの説明 ここではドキュメントに追加されたイベント scroll が使用され、ブラウザの scroll イベントはスクロール時に関数をトリガーするために使用されます。 ここで、bannerTop という変数が設定されています。これは、中央の緑色のモジュールの上部とページの上部の間の距離です。次に、変数 cmtop が定義されます。ここで、cm はサイドバーから上部までの距離で、cmtop=bannerTop-cm.offsetTop です。次に、ページの巻き上がり長さが中間モジュールから上部までの距離より大きいかどうかを判断します。これは、ページが中間モジュールまでスワイプされたかどうかを意味します。中間モジュールまでスワイプされた場合は、サイドバーの位置を固定し、それに応じてサイドバーから上部までの距離を変更します。この場合、サイドバーと中間ブロックは比較的静的であるため、中間領域に巻き込まれていない場合は cmtop の値が一定であり、中間領域に巻き込まれた場合はバナーになります。 Top の値が負の値になったため、それに応じて cmtop の値が増加し、この増加した値がサイドバーの上部からの距離の値に渡されます。これにより、サイドバーが中央領域までスクロールされたときに、サイドバーが比較的静止したままになる状況が発生します。中央の領域をスライドしないと、サイドバーはデフォルトの位置のままになります。 その後、最後の領域までスワイプすると、サイドバーに「先頭に戻る」という文字が表示されます。 以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: MySQL 5.7 で業務を停止せずに従来のレプリケーションを GTID レプリケーションに変更する例
>>: 広告を閉じるための JavaScript カウントダウン
1. MySQL ログイン設定を変更します。 # vim /etc/my.cnf文を追加: skip...
yumを使用してcentos7.3にDocker V1.13.1をインストールしましたしかし、doc...
環境: 1 CentOS Linux リリース 7.5.1804 (コア)ファイアウォールと sel...
今日は、ネイティブ JS で実装された画像マーキー効果を紹介します。効果は次のとおりです。 実装され...
最初の方法: CSSコード:コードをコピーコードは次のとおりです。 .b970-a{幅:970px;...
目次1. Bootstrapグリッドシステムの仕組み1.1 12グリッドシステム1.2 Bootst...
コードをコピーコードは次のとおりです。 <thead> <!– 最初の 2 行をヘ...
JD カルーセルは、動的な効果を追加せず、主に位置決めの知識を使用して、純粋な HTML と CS...
目次1. はじめに2. インストール3. 基本的な使い方3.1、-rパラメータ3.2、-aパラメータ...
序文MRR は Multi-Range Read の略で、ランダム ディスク アクセスを削減し、ラン...
この記事では、MySQL 5.7.27 winx64のインストールと設定方法を参考までに紹介します。...
目次成果を達成するsortablejs の紹介具体的な実装成果を達成する最初は、antdesign ...
1: nginxサーバーソリューション、.conf構成ファイルを変更する解決策は2つある1: 位置 ...
目次1. ReactJS の紹介2. ReactJSの理解とReactJSの利点1. ReactJS...
ページを作成するときに、ページの見栄えを良くするために、背景画像を設定する必要があることがよくありま...