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の保存と読み取りの違い

推薦する

LinuxでVIMエディタを使う方法

豊富なオプションを備えた強力なエディターとして、Vim は多くのユーザーに愛されています。この記事で...

CSS3 @mediaの基本的な使い方のまとめ

//文法: @media mediatype and | not | only (メディア機能) ...

PSを使用して2分でxhtml+cssウェブサイトのホームページを作成します

xhtml+css のウェブサイト再構築、ウェブ標準などについては、記事が多すぎるので繰り返しません...

Dockerイメージ内のnoneイメージ操作を削除する

普段はdocker buildコマンドでイメージを生成していますが、コードの更新が頻繁に行われるとn...

MySQLはカスタム関数を使用して親IDまたは子IDを再帰的に照会します

背景: MySQL では、レベルに制限がある場合、たとえば、ツリーの最大深度を事前に決定できる場合、...

Nodejs プラグインと使用方法の概要

このチュートリアルの動作環境: Windows 7 システム、nodejs バージョン 12.19....

Linux で crontab 出力リダイレクトが有効にならない問題の解決方法

質問LINUX では、定期的なタスクは通常、cron デーモン プロセス [ps -ef | gre...

サーバーから返される14の一般的なHTTPステータスコードの詳細な説明

HTTP ステータス コードステータス コードは 3 桁の数字と理由フレーズ (最も一般的なもの: ...

Nginx+tomcat ロードバランシングクラスタの実装方法

実験環境は以下のとおりですここでは、4 台のサーバー (1 台の nginx、負荷用の 2 台の t...

Vue3 を使用してポップアップ コンポーネントをカプセル化するのは簡単ですか?

目次最初に要約: 🌲🌲 序文: 🍬🍬公開🍬🍬 🍬🍬グローバル🍬🍬 🍬🍬ボールボックス🍬🍬 🎉🎉🎉結論...

CSSは親コンテナのdivをimg画像で埋め、コンテナのサイズに適応します。

ページに複数の画像を導入すると、画像のサイズがばらつくことがあります。しかし、それらを一貫したサイズ...

Vue+elementUI コンポーネントは、折りたたみ可能な動的レンダリングのマルチレベル サイドバー ナビゲーションを再帰的に実装します。

かなり前に実装された機能ですが、クリックすると選択したメニュー項目の背景色が白くなることに気付きまし...

Nodejs がイントラネット侵入サービスを実装

目次1. LAN内のプロキシ2. イントラネットの浸透イントラネット侵入とは何ですか?橋プロキシサー...

Vueスロットの詳細な説明

1. 機能: 親コンポーネントが子コンポーネントの指定された位置に HTML 構造を挿入できるように...

JavaScript配列の一般的なメソッドの詳細な説明

目次一般的な配列メソッドポップ()シフト解除()シフト()スライス()スプライス()配列から重複した...