トップに戻るボタンを実装するJavaScript

トップに戻るボタンを実装するJavaScript

この記事では、トップに戻るボタンを実装するためのJavaScriptの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

1.まず足場を組む

{
            テキスト装飾: なし;
    }
        
        体 {
            高さ: 5000ピクセル;
        }
        
        .トップに戻る{
            位置: 固定;
            下: 80px;
            右: 80px;
            幅: 80ピクセル;
            高さ: 80px;
            背景色: #ccc;
            フォントサイズ: 20px;
            テキスト配置: 中央;
            上部パディング: 12px;
            ボックスのサイズ: 境界線ボックス;
            カーソル: ポインタ;
            色: #000;
            /* まずボタンを非表示にする */
            /*表示: なし;*/
        }
<a href="javascript:;" class="backtotop" id="backtotop">トップに戻る</a> 

2. 論理部分

マウスが「トップに戻る」ボタンをクリックすると、50 ミリ秒ごとに一定の「速度」でトップに戻ります。トップに戻った後はクリアする必要があります。そうしないと、ページが下に引っ張られるとすぐに自動的にトップに戻ります。ここでは、setInterval と clearInterval の 2 つのメソッドが使用されます。前者はタイマーを設定するためのもので、後者はタイマーをクリアするためのものです。
ここで注意すべき点は、競合を避けるために、タイマーを設定する前に「まずタイマーを設定する」必要があるということです。
最後に、ユーザー エクスペリエンスを向上させるために、現在のページが最上部にある場合は「先頭に戻る」ボタンが自動的に非表示になり、現在のページが最上部でない場合は「先頭に戻る」ボタンが表示されるように設計する必要があります。

.トップに戻る{
    /* まずボタンを非表示にする */
    表示: なし;
}
(関数() {
      // 1. 操作する要素を取得します。let oBackBtn = document.querySelector("#backtotop"); 
      // 2. Webページのスクロールを監視する window.onscroll = function() {
                // スクロール距離を取得します。let offsetY = getPageScroll().y;
                // コンソールログ(オフセットY);
 
                // ロールバックボタンを表示するかどうかを決定します if (offsetY >= 200) {
                    oBackBtn.style.display = "ブロック";
                } それ以外 {
                    oBackBtn.style.display = "なし";
                }
            }
 
            timerId を null にします。
 
            // 3. ロールバックボタンのクリックをリッスンする oBackBtn.onclick = function() {
 
                //タイマーの競合を防ぐために、最初にテーブルを閉じるように設定します。clearInterval(timerId);
 
                //タイマーを設定する timerId = setInterval(function() {
                    let begin = getPageScroll().y; //現在の位置 let target = 0; //ターゲット位置 let step = (target - begin) * 0.3;
                    開始 += ステップ;
 
                    //終了するかどうかを判定 if (Math.abs(Math.floor(step)) <= 1) {
 
                        //タイマーをクリアする clearInterval(timerId);
 
                        // window.scrollTo(x, y);
                        // x は Web ページを水平方向にスクロールする位置を示します // y は Web ページを垂直方向にスクロールする位置を示します window.scrollTo(0, 0);
                        戻る;
                    }
 
                    ウィンドウを0にスクロールします。
 
                }, 50);
            };
 
            関数 getPageScroll() {
                x, y とします。
                if (window.pageXOffset) {
                    x = ウィンドウのページXオフセット;
                    y = ウィンドウのYオフセット;
                } そうでない場合 (document.compatMode === "BackCompat") {
                    ドキュメントの左端をスクロールします。
                    ドキュメントの先頭部分をスクロールします。
                } それ以外 {
                    ドキュメント要素の左スクロール。
                    y = document.documentElement.scrollTop;
                }
                戻る {
                    x: x,
                    y: y
                }
            }
        })(); 

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • トップに戻るボタンの例の JavaScript 実装
  • JavaScript は WeChat ブラウザを監視し、戻るボタンの時間を表示します
  • Javascript に基づいてトップに戻るボタンを実装する
  • JavaScriptのトップに戻るボタンを実装する方法
  • JavaScript でトップに戻るボタンを実装する
  • JavaScript を使用してブラウザの戻るボタンをブロックする方法
  • JavaScriptはブログページの右下隅にトップに戻るボタンを実装します
  • JSはそれぞれ画像とボタンを介して前のページの例コードに戻ります
  • js ボタンをクリックすると別のページがポップアップし、値を選択して現在のページに戻ります
  • JavaScript ポップアップ フォームのボタンをクリックして選択したデータを返す実装

<<:  MySQL スロークエリログの詳細な理解

>>:  IIS を使用して X-Forwarded-For ヘッダー (XFF) を呼び出して訪問者の実際の IP を記録する 2 つの方法

推薦する

nginxフロー制御とアクセス制御の実装

nginx トラフィック制御レート制限は非常に便利ですが、Nginx では誤解され、誤って設定される...

Docker初心者が初めてよく使うコマンドを試してみる練習記録

Docker を正式に使用する前に、まず Docker でよく使用されるコマンドに慣れておきましょう...

WeChatアプレットbindtapとcatchtapの違いの詳細な説明

目次1. イベントとは何ですか? 2. イベントの使い方3. バインドタップとキャッチタップの違い4...

データベース管理に役立つ 5 つの MySQL GUI ツール

MySQL には多くのデータベース管理ツールがあります。作業効率の向上に役立つ優れた GUI ツール...

各 Nginx プロセスで開くことができるファイルの最大数を設定する方法

1. システム内で開いているファイルの最大数を確認する #現在のリソース制限設定を表示する ulim...

仮想マシンのディスクサイズを拡張する方法

Vmvare が仮想マシンのディスク サイズを設定した後、ディスク領域が不足していることがわかりまし...

MySQLがブール型を返すいくつかの状況について簡単に説明します。

mysqlはブール型を返します最初のケースでは、直接戻ります select id='22a...

フロントエンドページのスライド検証を実装するための JavaScript + HTML (2)

この記事の例では、クールなフロントエンドページのスライド検証の具体的なコードを参考までに共有していま...

HTML テーブルの使い方 (Web ページの視覚効果を表示する)

NetEase Blog で HTML を使用する場合、テンプレートに直接コードを追加できることは...

訪問者にあなたのウェブサイトを覚えてもらうための3つの便利なコード

訪問者があなたのウェブサイトを覚えておくのに役立つ3つの便利なコード。お気に入りに追加するためのヒン...

Docker のホスト間コンテナ通信オーバーレイ実装プロセスの詳細な説明

サーバーも 2 つあります。準備:コンテナのホスト名を設定する consul: kv タイプのストレ...

HTML を使用して IE8 および IE9 の互換表示モードを無効にするヒント

IE 8 以降では互換モードが追加され、これを有効にすると IE の下位バージョンでレンダリングされ...

Dockerデータストレージの概要

この記事を読む前に、ボリューム、バインドマウント、tmpfs マウントの基本を理解しておいてください...

nginxリバースプロキシのマルチポートマッピングの実装

コードの説明1.1 http:www.baidu.test.com のデフォルトは 80 で、リバー...

vueを使用して登録ページの効果を実現し、vueを使用してSMS認証コードログインを実現します

この記事の例では、登録ページの効果を実現するためのVueの具体的なコードを参考までに共有しています。...