固定サイドバーを実現するための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 カウントダウン

推薦する

Centos で MySQL パスワードを変更する方法

1. MySQL ログイン設定を変更します。 # vim /etc/my.cnf文を追加: skip...

docker インストール後に hello-world を実行する問題を解決する

yumを使用してcentos7.3にDocker V1.13.1をインストールしましたしかし、doc...

https暗号化アクセス用にnginxを設定するための詳細なチュートリアル

環境: 1 CentOS Linux リリース 7.5.1804 (コア)ファイアウォールと sel...

画像マーキー効果を実現するネイティブJS

今日は、ネイティブ JS で実装された画像マーキー効果を紹介します。効果は次のとおりです。 実装され...

HTML で Flash を読み込む方法 (2 つの実装方法)

最初の方法: CSSコード:コードをコピーコードは次のとおりです。 .b970-a{幅:970px;...

Bootstrap Webページレイアウトグリッドの実装

目次1. Bootstrapグリッドシステムの仕組み1.1 12グリッドシステム1.2 Bootst...

HTML thead タグの定義と使用法の詳細な紹介

コードをコピーコードは次のとおりです。 <thead> <!– 最初の 2 行をヘ...

JDカルーセル効果を実現するための純粋なHTMLとCSS

JD カルーセルは、動的な効果を追加せず、主に位置決めの知識を使用して、純粋な HTML と CS...

Linux で rsync を使用する方法

目次1. はじめに2. インストール3. 基本的な使い方3.1、-rパラメータ3.2、-aパラメータ...

MySQL InnoDB MRR 最適化ガイド

序文MRR は Multi-Range Read の略で、ランダム ディスク アクセスを削減し、ラン...

MySQL 5.7.27 winx64 のインストールと設定方法のグラフィックチュートリアル

この記事では、MySQL 5.7.27 winx64のインストールと設定方法を参考までに紹介します。...

Antdesign-vueとsortablejsを組み合わせて、2つのテーブルをドラッグして並べ替える機能を実現

目次成果を達成するsortablejs の紹介具体的な実装成果を達成する最初は、antdesign ...

Vue パッケージアップロードサーバー更新 404 問題に対する 2 つの解決策

1: nginxサーバーソリューション、.conf構成ファイルを変更する解決策は2つある1: 位置 ...

ReactJs 基礎チュートリアル - 基本編

目次1. ReactJS の紹介2. ReactJSの理解とReactJSの利点1. ReactJS...

CSSで背景ぼかしを設定する方法

ページを作成するときに、ページの見栄えを良くするために、背景画像を設定する必要があることがよくありま...