シンプルなドラッグ効果を実現するJavaScript

シンプルなドラッグ効果を実現するJavaScript

この記事では、簡単なドラッグ効果を実現するためのJavaScriptの具体的なコードを参考までに紹介します。具体的な内容は次のとおりです。

まず実装の効果を見てみましょう。

アイデア:マウスの押下、移動、リリースの3つのイベントを使用します

まずボックスを作成し、CSSスタイルを設定します

HTML:

//html
<div>
    <p>私は青い箱です</p>
</div>

CS: ...

CS
*{マージン: 0;パディング: 0;}
        div{
            幅: 100ピクセル;
            高さ: 100px;
            背景色: コーンフラワーブルー;
            位置: 絶対;
        }
        p{
            幅: 100ピクセル;
            高さ: 100px;
            行の高さ: 100px;
            フォントサイズ: 10px;
            色: #fff;
            テキスト配置: 中央;
            遷移: すべて .5 秒;
        }
        p:ホバー{
            変換: translateY(-5px);
            遷移: すべて .5 秒;
            ボックスシャドウ: 10px 10px 5px グレー;
}

次にJSで対応するメソッドを設定します

var div = document.querySelector('div');
        var p = document.querySelector('p');
        //まず変数xとyを定義して初期化します
        var x = 0;
        変数 y = 0;
        // var i = 3;
        var TorF = false;
        //ボックス内のテキストは選択できません div.onselectstart = function (e) {
            false を返します。
        }
        div.addEventListener('mousedown',function(e){
            // クライアント: マウスボタンが押されたときのマウスポインターの座標を出力します。x = e.clientX;
            y = e.clientY;
            // 形式: obj.offsetLeft: 左と上のオフセットを取得します // 特記事項: このプロパティは読み取り専用であり、値を割り当てることはできません。
            // 現在の要素と親要素 (本体) の左側の間の距離を返します。// ここで、l と t はグローバル変数を宣言するのではなく、グローバル オブジェクトのプロパティを作成します。
            l = div.offsetLeft;
            t = div.offsetTop;
            // マウス設定の移動矢印 div.style.cursor = 'move';
            p.innerHTML = '圧迫されました^_^';
            TorF = true;
        });
        // 画面全体が移動イベントをトリガーしたとき document.addEventListener('mousemove',function(e){
            // falseの場合は関数の実行を終了し、関数の値を返します。if (Torf == false) {
                戻る; 
            }
            // この関数でローカル変数を定義します var twox = e.clientX;
            var twoy = e.clientY;
            // 取得したマウス ポインターの座標を使用します - (マウス ポインターの座標 - オフセット) = マウス ドラッグの実際の位置 // 元の取得には単位がないため、px 単位を最後に追加する必要があります var twol = twox - (xl);
            var twot = twoy - (yt); 
            div.style.left = twol+'px';
            div.style.top = twot+'px';
            p.innerHTML = '私は引きずられています-.-';
        });
        div.addEventListener('mouseup',function(){
            // キーボードを放したときにマウス移動イベントを停止します TorF = false;
            // マウスはデフォルトのスタイルを復元します div.style.cursor = 'default';
            p.innerHTML = 'QAQ で返送されました';
 })

知らせ:

1. ボックスの位置を制御したい場合は、ボックスに位置を追加する必要があります。そうしないと、ボックスは移動しません。

2. offsetLeft プロパティは読み取り専用であり、値を割り当てることはできません。

3. マウス位置の計算: マウスポインターの座標 - (マウスポインターの座標 - オフセット) = 実際のマウスドラッグ位置

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

以下もご興味があるかもしれません:
  • JavaScript における一般的な配列操作
  • JavaScript の async と await のシンプルで詳細な学習
  • 古典的なスネークゲームの JavaScript 実装
  • 組み込みオブジェクトに関するJavascriptの基礎
  • JavaScriptの動作メカニズムの詳細な説明とイベントループについての簡単な説明
  • Python コルーチンと JavaScript コルーチンの比較
  • マウスの尾行効果を実現する JavaScript
  • JavaScript配列重複排除の詳細な説明
  • 航空機戦争ゲームを実装するためのJavaScript
  • JavaScript setinterval 1秒遅延ソリューション
  • JavaScriptアップロードファイル制限パラメータケースの詳細な説明
  • JavaScript 変数の昇格についての簡単な説明
  • JavaScriptイベント実行メカニズムの深い理解
  • プロジェクトに必須の 8 つの JavaScript コード スニペット

<<:  MySQL データベース接続例外の概要 (収集する価値あり)

>>:  MySQLでビューを作成する方法

推薦する

proxy_pass がパス パスに従って転送する場合の "/" 問題の詳細な説明

nginx で proxy_pass を設定するときに、^~ に従ってパスを一致させる場合は、pro...

シャトルボックス機能を実装するためのVueの詳細なコード

Vue - シャトルボックス機能を実装します。効果図は次のようになります。 CS 。移行{ ディスプ...

MySQLにログインする際のエラー「ERROR 1045 (28000)」を解決する方法

今日はサーバーにログインして、データベース内のいくつかのものを変更する準備をしました。しかし、パスワ...

JavaScript でプロトタイプ パターンを実装する方法

概要プロトタイプ パターンは、プロトタイプ インスタンスによって作成されるオブジェクトの型を指し、こ...

MySQL DEFINER の使用方法の詳細な説明

目次序文: 1.DEFINERの簡単な紹介2. いくつかの注意点要約:序文: MySQL データベー...

JavaScript は、シンプルな虫眼鏡の最も完全なコード分析を実装します (ES5)

この記事では、参考までに、シンプルな虫眼鏡を実装するためのJavaScriptの具体的なコードを紹介...

MySQL の低速クエリの最適化: 理論と実践からの制限の利点

多くの場合、クエリの結果は最大で 1 つのデータ レコードになることが予想されます。この場合、制限 ...

CSS 背景と境界タグの例の詳細な説明

1. CSS背景タグ1.背景色を設定するbackground-ground-color プロパティは...

スケルトン スクリーンの読み込みプレースホルダー アニメーション効果を実装するための CSS + HTML (アニメーション付き)

効果上から下へフェードアウト ソースコードhtml、Angular構文を使用して、必要な構文を取得す...

HTMLタグと基本要素の学習のまとめ

1. HTML の要素とタグ<br />要素は、1 つのタグまたは 1 組のタグによって...

MySQL 8.0.11 のインストールと設定方法のグラフィックチュートリアル

MySQL 8.0のインストールと設定方法は参考までに。具体的な内容は以下のとおりです。ダウンロード...

ミニプログラム録画機能の実装

序文ミニプログラムを開発する過程では、録音機能を実装し、録音を再生し、録音をサーバーにアップロードす...

Linux Cron によるパラメータ付き PHP コードのスケジュール実行

1. 引き続き PHP スクリプトを使用して実行します。コマンドラインに入力: php /home/...

CSSはグラデーションを巧みに利用して高度な背景光アニメーションを実現します

成し遂げるこの効果は CSS を使用して完全に再現することは困難です。 CSS でシミュレートされた...

Linuxで権限が拒否された場合の解決策の詳細な説明

許可が拒否されました:その理由は、ファイルの読み取り、書き込み、作成、削除などの権限がないためです。...