トップに戻るボタンを実装する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 つの方法

推薦する

MySQL 5.7.19 Winx64 ZIP アーカイブのインストールと使用に関する問題の概要

今日はMySQLのインストール方法を学びましたが、その過程でいくつか問題が発生しました。関連記事をい...

1つの記事でJavaScript DOM操作の基本を学ぶ

DOM の概念DOM: ドキュメント オブジェクト モデル: ドキュメント オブジェクト モデルは、...

JavaScriptは入力ボックスコンポーネントを実装します

この記事では、入力ボックスコンポーネントを手動で実装するための具体的なコードを参考までに紹介します。...

JavaScript ES6 モジュールの詳細な説明

目次0. モジュールとは何か1.モジュールの読み込み1.1 方法1 1.2 方法2 2. 輸出と輸入...

Javascriptのクロージャとアプリケーションの詳細な説明

目次序文1. クロージャとは何ですか? 1.1 クロージャは条件コードを満たす1.2 クロージャ生成...

Linux nohup コマンドの原理と例の分析

nohup コマンドUnix/Linux を使用する場合、通常はプログラムをバックグラウンドで実行す...

デザイナーが再びハマーの公式サイトに不満を述べる

昨年、この公開書簡は大ヒットし、羅永浩氏を驚かせた。今日、著者が新しい章を発表するとは思ってもみなか...

Docker のインストールと構成コマンドのコード例

Dockerのインストール依存パッケージをインストールする sudo yum install -y ...

CSSでemを開く正しい方法の詳細な説明

「通常 1em=16px」と言うのはなぜですか?ユーザーのブラウザによってレンダリングされるデフォル...

JSはプログレスバーのスムーズバージョンの詳細な計画を実装します

進捗バーがスムーズではないフロントエンドを学ぶ学生のほとんどは、オーディオプレーヤーやビデオプレーヤ...

高速レイアウトのための CSS ビューポート単位

CSS ビューポート ユニットはここ数年登場しており、時が経つにつれて、ますます多くの開発者が使用し...

Vueスロットの実装原理についての簡単な説明

目次1. サンプルコード2. 現象を通して本質を見抜く3. 実施原則4. 親コンポーネントのコンパイ...

MySQL の分離レベル、ロック、MVCC の紹介

この記事の目的は、これらの概念とその機能の関係を明らかにすることです。 Mysql がトランザクショ...

CentOS7 デプロイメント Flask (Apache、mod_wsgi、Python36、venv)

1. Apacheをインストールする # yum インストール -y httpd httpd-de...

MySql テーブル内の行を削除する実用的な方法

まず、どのフィールドまたはフィールドの組み合わせがデータ行を一意に識別できるかを決定する必要がありま...