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

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

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

クールなフロントエンドページのスライド検証を共有する

以前にも投稿しましたが、こちらは別のものですが、特殊効果が異なります

またはコード上で直接:

<%@ ページ contentType="text/html;charset=UTF-8" language="java" %>
<html>
<ヘッド>
    <title>タイトル</title>
    <スタイル>
        /* スライド コントロール コンテナー、灰色の背景 */
        #ドラッグコンテナ{
            位置: 相対的;
            表示: インラインブロック;
            背景: #e8e8e8;
            幅: 300ピクセル;
            高さ: 33px;
            境界線: 2px 実線 #e8e8e8;
        }
        /* スライダーの左側、緑の背景*/
        #ドラッグBg{
            位置: 絶対;
            背景色: #7ac23c;
            幅: 0px;
            高さ: 100%;
        }
        /* スライド検証コンテナテキスト*/
        #ドラッグテキスト{
            位置: 絶対;
            幅: 100%;
            高さ: 100%;
            /* テキストを水平方向に中央揃えにする */
            テキスト配置: 中央;
            /* テキストは垂直方向に中央揃えされます。パーセンテージは div の高さではなく元の行の高さに対する相対値であるため、ここではパーセンテージは使用できません。*/
            行の高さ: 33px;
            /* テキストは選択できません */
            ユーザー選択: なし;
            -webkit-user-select: なし;
        }
        /* スライダー*/
        #ドラッグハンドラ{
            位置: 絶対;
            幅: 40px;
            高さ: 100%;
            カーソル: 移動;
        }
        /* スライダーの初期背景 */
        .dragHandlerBg {
            background: #fff no-repeat center url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8++IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+YiRG4AAAALFJREFUeNpi/P//PwMlgImBQkA9A+bOnfsIiBOxKcInh+yCaCDuByoswaIOpxwjciACFegBqZ1AvBSIS5OTk/8TkmNEjwWgQiUgtQuIjwAxUF3yX3xyGIEIFLwHpKyAWB+I1xGSwxULIGf9A7mQkBwTlhBXAFLHgPgqEAcTkmNCU6AL9d8WII4HOvk3ITkWJAXWUMlOoGQHmsE45ViQ2KuBuASoYC4Wf+OUYxz6mQkgwAAN9mIrUReCXgAAAABJRU5ErkJggg==");
        }
        /* 検証が成功するとスライダーの背景に√が表示されます*/
        .dragHandlerOkBg {
            background: #fff no-repeat center url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA3hpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8++IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+k+sHwwAAASZJREFUeNpi/P//PwMyKD8uZw+kUoDYEYgloMIvgHg/EM/ptHx0EFk9I8wAoEZ+IDUPiIMY8IN1QJwENOgj3ACo5gNAbMBAHLgAxA4gQ5igAnNJ0MwAVTsX7IKyY7L2UNuJAf+AmAmJ78AEDTBiwGYg5gbifCSxFCZoaBMCy4A4GOjnH0D6DpK4IxNSVIHAfSDOAeLraJrjgJp/AwPbHMhejiQnwYRmUzNQ4VQgDQqXK0ia/0I17wJiPmQNTNBEAgMlQIWiQA2vgWw7QppBekGxsAjIiEUSBNnsBDWEAY9mEFgMMgBk00E0iZtA7AHEctDQ58MRuA6wlLgGFMoMpIG1QFeGwAIxGZo8GUhIysmwQGSAZgwHaEZhICIzOaBkJkqyM0CAAQDGx279Jf50AAAAAABJRU5ErkJggg==");
        }
    </スタイル>
</head>
<本文>
        <div id="dragContainer"><!-- コンテナの初期背景 -->
            <div id="dragBg"></div><!-- 緑の背景 -->
            <div id="dragText"></div><!-- スライド コンテナー テキスト -->
            <div id="dragHandler" class="dragHandlerBg"></div>
        </div> <!-- スライダーの初期背景 -->
</本文>

<スクリプト>
    //Load(ページが読み込まれた後にイベントがトリガーされます)
    window.onload = 関数() {
        // スライド コントロール コンテナー (灰色の背景) を取得します。var dragContainer = document.getElementById("dragContainer");
        //スライダーの左側部分(緑の背景)を取得します。var dragBg = document.getElementById("dragBg");
        // スライディング検証コンテナのテキストを取得します。var dragText = document.getElementById("dragText");
        //スライダーを取得します var dragHandler = document.getElementById("dragHandler");

        //スライダーの最大オフセット = スライディング検証コンテナのテキストの長さ - スライダーの長さ var maxHandlerOffset = dragContainer.clientWidth - dragHandler.clientWidth;
        //検証が成功したかどうか var isVertifySucc = false;

        ドラッグを初期化します。

        関数initDrag() {
            // スライディング検証コンテナのテキストに「スライダーをドラッグして検証」と記入します
            dragText.textContent = "確認するにはスライダーをドラッグしてください";
            //スライダーにマウスダウンリスナーを追加します。dragHandler.addEventListener("mousedown", onDragHandlerMouseDown);
        }

        //スライダー関数を選択する onDragHandlerMouseDown() {
            //マウスの動きの監視 document.addEventListener("mousemove", onDragHandlerMouseMove);
            //マウスリリースリスナー document.addEventListener("mouseup", onDragHandlerMouseUp);
        }

        //スライダー移動関数 onDragHandlerMouseMove() {
            /*
            html要素にはwidth属性がなく、clientWidthのみがあります。
            offsetX は現在の要素に対する相対値、clientX と pageX は親要素に対する相対値です*/
            //スライダーの移動 var left = event.clientX - dragHandler.clientWidth / 2;
            //
            if(左 < 0) {
                左 = 0;
                //スライダーの動きがスライダーの最大オフセットより大きい場合は、検証成功関数を呼び出します} else if(left > maxHandlerOffset) {
                左 = maxHandlerOffset;
                成功を検証します。
            }
            //スライダーの移動 dragHandler.style.left = left + "px";
            //緑の背景の長さ dragBg.style.width = dragHandler.style.left;
        }

        //スライダー機能を解放する function onDragHandlerMouseUp() {
            //マウスの動きのリスニングを削除します。 document.removeEventListener("mousemove", onDragHandlerMouseMove);
            //マウスリリースリスナーを削除します document.removeEventListener("mouseup", onDragHandlerMouseUp);
            //スライダーの動きを初期化します。dragHandler.style.left = 0;
            //緑の背景を初期化します。dragBg.style.width = 0;
        }

        //検証成功 function verifySucc() {
            // マークは成功しましたが、再バインドできません isVertifySucc = false;
            // コンテナのテキストを白い「検証に合格しました」フォントに変更します。dragText.textContent = "検証に合格しました";
            dragText.style.color = "白";
            //スライダーの背景を確認します dragHandler.setAttribute("class", "dragHandlerOkBg");
            //マウスダウンリスナーを削除します。dragHandler.removeEventListener("mousedown", onDragHandlerMouseDown);
            //マウスの動きのリスニングを削除します。 document.removeEventListener("mousemove", onDragHandlerMouseMove);
            //マウスリリースリスナーを削除します document.removeEventListener("mouseup", onDragHandlerMouseUp);
            // 一致が成功したら、ジャンプ先のページを記述します //window.location.href="success page.html" rel="external nofollow";
        };
    }
</スクリプト>
</html>

効果は以下のとおりです

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

以下もご興味があるかもしれません:
  • Vue-scroller ページ入力ボックスを使用してもスライドがトリガーされない問題と解決策
  • Vueはbetter-scrollに基づいて左右のリンクスライドページを実装します
  • Vue はページ切り替えスライド効果を実装します
  • 指を使って Vue ルーティング ページ間をスライドする方法
  • Vueをベースにページ切り替えの左右スライド効果を実装する
  • フロントエンドページのスライド検証を実装するための JavaScript + HTML
  • JavaScriptはスクロールバーの位置を取得し、ページをアンカーポイントまでスライドします。
  • jsを使用してページの下部にスライドし、より多くの機能を自動的に読み込む
  • js/jquery コントロール ページ 動的読み込み データ スライディング スクロール バー 自動読み込み イベント メソッド
  • Vue/jsで自動ページスライドアップ効果を実現

<<:  MySQL データ挿入効率の比較

>>:  Linux のパスワードを紛失した場合にリセットする方法

推薦する

mysqlを完全にアンインストールします。個人テストです!

MySQL をクリーンアンインストールします。個人的にテストしたところ、今回はようやくうまくいきま...

HTML テーブルインライン形式の詳細な説明

インライン形式<colgroup>...</colgroup>属性名 属性値...

ウェブサイトをより高く、よりデザイン的に見せる方法

「ウェブサイトを高級感のあるものにするにはどうすればいいでしょうか? それともデザイン重視にすればい...

Vue シングルページ SEO の 4 つのソリューションについての簡単な説明

目次1.Nuxtサーバーサイドレンダリングアプリケーションの展開(SSRサーバーレンダリング)利点:...

CSS を使用して正方形の div を実装する 2 つの方法

目標: 辺の長さが等しい正方形を作成する方法 1: 単位 vw を使用する (ps これが最も簡単な...

ネイティブJSは非常に見栄えの良いカウンターを実装します

今日は、ネイティブ JS で実装された見栄えの良いカウンターを紹介します。効果は次のとおりです。 以...

Ubuntu でパスワードを変更し、パスワードの複雑さのポリシーを設定する方法

1. パスワードを変更する1. 一般ユーザーのパスワードを変更する パスワード現在のパスワードを入力...

Win10環境にMysql5.7.23をインストールする際の問題点と落とし穴

たくさんのチュートリアルを読みましたが、うまくインストールできませんでした。しばらく試行錯誤した後、...

Mysqlアカウント管理の原理と実装方法の詳細な説明

この記事では、例を使用して、MySQL アカウント管理の原則と実装方法を説明します。ご参考までに、詳...

VUE のコンパイル スコープとスロット スコープのスロットの問題について

スロットとは何ですか?スロット ディレクティブは v-slot であり、現在 slot と slot...

入力のsize属性とmaxlength属性の違い

最近、プロジェクトで input size 属性と maxlength 属性を使用しました。以前は、...

mysql8 共通テーブル式 CTE 使用例の分析

この記事では、例を使用して、MySQL 8 の共通テーブル式 (CTE) の使用方法を説明します。ご...

Nexusプライベートサーバー構築原理とチュートリアル分析

1つ。 Nexus プライベート サーバーを構築する理由は何ですか?社内の開発メンバーは全員外部ネッ...

モバイルデバイスでインラインスクロールを実装するための4つのソリューションの詳細な説明

ニーズの発見領域の一部のみスクロールでき、残りの部分は移動できない場合、どのような方法を使用しますか...

Nginx 転送ソケットポート設定の詳細な説明

Nginx によるソケット ポート転送の一般的なシナリオ: オンライン学習アプリケーションでは、通常...