固定サイドバーを実現するためのJavaScript

固定サイドバーを実現するためのJavaScript

固定サイドバーを実装するには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 を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • スクロールバーに合わせてスライドするブログサイドバーモジュールの固定効果を実装する方法(js+jqueryなど)
  • 動的なサイドバーコードを実装するためのJavaScript
  • 動的サイドバーの例の JavaScript 実装の詳細な説明
  • js を使用してレスポンシブ サイドバーを作成する
  • JS はサイドバーのマウスオーバーポップアップボックス + バッファ効果を実装します
  • シンプルな非表示サイドバー機能を実現する JavaScript の例
  • slideout.js をベースにモバイル サイドバーのスライド効果を実装する
  • JS モーション フレームワーク共有サイドバー アニメーションの例
  • JavaScriptでシームレススクロールを実装し、サイドバーのサンプルコードに共有する
  • フルスクリーンサイドバーを実現するためのjs+css
  • JSは京東製品分類サイドバーを実現
  • JSで実現したページサイドバーの効果に関する研究

<<:  MySQL 5.7 で業務を停止せずに従来のレプリケーションを GTID レプリケーションに変更する例

>>:  広告を閉じるための JavaScript カウントダウン

推薦する

VueとElementUIを組み合わせたスキン変更ソリューション

目次前面に書かれた解決策 1: グローバル スタイル オーバーライドを使用する (フロントエンドに共...

検索エンジンのウェブサイトの入り口の無料コレクション

1: Baiduウェブサイトログイン入口ウェブサイト: http://www.baidu.com/s...

Zabbix は MySQL インスタンス メソッドを監視します

1. 監視計画監視項目を作成する前に、何を監視するのか、どのように監視するのか、監視データをどのよう...

Dockerのネットワークモードと設定方法

1. Dockerネットワークモードdocker run が Docker コンテナを作成するときに...

Win10にnginxをインストールする方法

会社から、負荷を実装するためにnginxをベースにFordプロジェクトのWebServiceサーバー...

HTML におけるメタの役割について (インターネットから収集および分類)

W3Cschoolではこのように説明しています<meta> 要素は、検索エンジン向けの説...

Linux sedコマンドの使用

1. 機能紹介sed (Stream EDitor) は、コンテンツを 1 行ずつ処理するストリーム...

画像内のrarファイルを隠す方法

このロゴを .rar ファイルとしてローカルに保存し、解凍して効果を確認することができます。よりシン...

VueはSplitを使用して、ユニバーサルドラッグアンドスライドパーティションパネルコンポーネントをカプセル化します。

目次序文始める基本レイアウトデータバインディングイベントバインディング最適化ジッター問題を最適化する...

Docker+Jenkinsによる自動デプロイの実現方法

Code Cloud を使用して Git コード ストレージ ウェアハウスを構築するhttps://...

Nginx コンテンツ キャッシュと共通パラメータ設定の詳細

使用シナリオ:プロジェクトのページでは、頻繁に変更されず、個別のカスタマイズも伴わない大量のデータを...

ウェブページの再設計の7つの主要要素 ウェブページの再設計の7つの主要要素を共有する

Shopify Plus は、私たちが設立した e コマース プラットフォームのエンタープライズ バ...

tomcat ログ ディレクトリ内のログ ファイルの分析 (概要)

tomcat が起動されるたびに、次のログ ファイルがログ ディレクトリに自動的に生成され、日付順...

jsは動的にテーブルを生成します(ノード操作)

この記事の例では、テーブルを動的に生成するjsの具体的なコードを参考までに共有しています。具体的な内...

HTML ページジャンプコード

次のコードを index.html などのデフォルトのホームページ ファイルとして保存し、ルート デ...