jsを使用してスライダーをドラッグする効果を実現します

jsを使用してスライダーをドラッグする効果を実現します

この記事では、jsでスライダーをドラッグする方法の具体的なコードを参考までに共有します。具体的な内容は次のとおりです。

スライダーのドラッグを実現するには、まずスライダーがドラッグできることを分析し、ページ内のスライダーの座標を変更する必要があります。次に、位置指定を使用して要素の上部左側を取得し、値を割り当てます。次のステップはイベントを準備することです。マウスのドラッグなので、 mousedown、mousemove、mouseup の 3 つのイベントが必要です。mousedownイベントを通じてスライダーが選択され、 mousemoveイベントを通じてスライダーがドラッグされます。スライダーをドラッグすると、表示されているウィンドウ内のマウスの座標が取得され、スライダーの上部左側に割り当てられます。

具体的なコード実装

<!DOCTYPE html>
<html lang="ja">

<ヘッド>
    <メタ文字セット="UTF-8">
    <meta http-equiv="X-UA-compatible" content="IE=edge">
    <meta name="viewport" content="width=デバイス幅、初期スケール=1.0">
    <title>ドキュメント</title>
    <スタイル>
        * {
            マージン: 0;
            パディング: 0;
            ボックスのサイズ: 境界線ボックス;
        }

        div {
            幅: 60ピクセル;
            高さ: 60px;
            背景色: コーラル;
            境界線の半径: 20%;
            位置: 絶対;
            境界線: 6px 実線スカイブルー;
            左: 0;
            上: 0;
        }
    </スタイル>
</head>

<本文>
    <div></div>
    <スクリプト>
        div = document.querySelector('div') とします。
        x, yとします
        fn = 関数 (e) {
            // コンソール.log('hhhhhhhh')
            div.style.left = e.clientX - x + 'px'
            div.style.top = e.clientY - y + 'px'
            (e.clientX - x < 30) の場合 {
                div.style.left = 0
            }
            (e.clientY - y < 30) の場合 {
                div.style.top = 0
            }
            if (e.clientX - x > document.documentElement.clientWidth - div.offsetWidth - 30) {
                div.style.left = document.documentElement.clientWidth - div.offsetWidth + 'px'
            }
            if (e.clientY - y > document.documentElement.clientHeight - div.offsetHeight - 30) {
                div.style.top = document.documentElement.clientHeight - div.offsetHeight + 'px'
            }
        }
        div.addEventListener('mousedown', 関数(e) {
            x = e.offsetX
            y = e.offsetY
            document.addEventListener('mousemove', fn)
        })
        div.addEventListener('mouseup', 関数() {
            document.removeEventListener('mousemove', fn)
        })
    </スクリプト>
</本文>

</html>

走る

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

以下もご興味があるかもしれません:
  • JavaScript でドラッグ スライダー パズルの検証機能を実装します (html5、canvas)
  • js スライダーをドラッグして、水の波紋効果のサンプルコードをクリックします
  • Vue はドラッグ スライダー検証機能を実装します (バックグラウンド検証手順のない CSS + JS のみ)
  • JavaScript ベースのドラッグスライダー効果の実装
  • JSコンポーネントによるドラッグスライダー検証機能の実装(コード共有)
  • スライダーをドラッグして画像サイズを制御するjsメソッド
  • ネイティブ JS カプセル化ドラッグ検証スライダー実装コード例
  • jsはPCとモバイル端末に対応したスライダードラッグ選択デジタルエフェクトを実現します
  • JSはマウスクリックに反応して2つのスライダー間のドラッグ効果を実現します

<<:  Docker と Intellij IDEA の融合により、Java 開発の生産性が 10 倍向上

>>:  MySQL CHARとVARCHARの保存と読み取りの違い

推薦する

Ubuntu 20.04でルートアカウントを有効にする方法

Ubuntu 20.04 をインストールした後、デフォルトでは root アカウントのログイン権限が...

Windows 10 での mysql5.5 データベース コマンドラインの中国語文字化け問題を解決する

システムをリセットした後、かなり前にインストールした MySQL データベースのコンソール クエリで...

Web インタビュー: MVC と MVVM の違いと、Vue が MVVM に完全に準拠していない理由

目次MVCとMVVMの違い前述のMVCC の概要長所と短所MVVM概要MVVM 実装者 — Vue ...

CSS で中空マスク レイヤーを実装するサンプル コード

この記事の内容: ページ中空マスクレイヤー、ページ中空マスクガイドレイヤー、画像中空マスク通常のマス...

Linuxでプロセスが占有するポート番号を表示する

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...

DockerはMysql、.Net6、Sqlserverなどのコンテナをデプロイします

目次CentOS 8にDockerをインストールする1. yumを更新する2. containerd...

WMLタグの概要

構造関連タグ--------------------------------------------...

Linux 占有ポートの強制解放と Linux ファイアウォールのポート開放方法の詳しい説明

nginx、mysql、tomcat などのサービスをインストールするときに、使用する必要があるポー...

Vueの使用に関する深い理解

目次Vueのコアコンセプトを理解するVueの双方向バインディングの原理と実装を探るVue 双方向バイ...

HTMLからPDFへのスクリーンショット保存機能の実装

テクノロジーの活用itext.jar: バイト ファイル入力ストリームを画像、PDF などに変換しま...

Vue v-onディレクティブの使用について

目次1. イベントのリスニング2. イベントパラメータを渡す3. イベント修飾子ケース1: クリック...

Nginx に lua-nginx-module モジュールをインストールする方法

ngx_lua_module は、lua パーサーを nginx に埋め込み、lua 言語で記述され...

MySQL マルチテーブル結合クエリ例の説明

実際のプロジェクトでは、複数のテーブル間に関係が存在します。 1 つのテーブル内のすべてのデータを取...

Navicat による MySQL パーティショニングの実践

MySQLのパーティショニングは、非常に大きなテーブルを管理するのに役立ちます。MySQLのパーティ...

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

広告を閉じるまでのカウントダウンを実装するために JavaScript を使用するまだフロントエンド...