マウス ドラッグ イベントをシミュレートする js (画像とテキストの例付き)

藏色散人
リリース: 2022-08-07 10:14:12
転載
3789 人が閲覧しました

この記事の例では、JavaScript でマウス ドラッグ効果を実現するための具体的なコードを共有します。具体的な内容は次のとおりです。

今回のレンダリングは次のとおりです。

この実験の難しい点は、ボックスとマウスの相対位置を変えずに、マウスを押して動かすことでドラッグ効果を実現することだと思います。

それを実現する方法 ドラッグの効果はどうですか?

3 つの関数を使用する必要があります:

onmousedownonmousemoveonmouseup。これらはそれぞれマウスの押下、マウスの移動、マウスを表します。 raises

mouse pressed のコールバック関数では、clientX および clientY を通じてマウスを取得する必要があります。ボックスの初期位置は offsetLeftoffsetTop によって取得され、マウスの初期位置とボックスの初期位置の差が計算されます。

マウスの動きコールバック関数では、マウスの位置と以前に計算された値の差に基づいてボックスの現在位置を取得し、その位置を変更する必要があります。 left と top の値です。位置を絶対値に設定することを忘れないでください (忘れてしまったので...)

mousemove のコールバック関数で、マウスの動きとマウスをクリアする必要があります。 onmousemove を変更して持ち上げます。また、onmouseup の値を null に設定することもできます。

こちらにも注意してください。 ! !

マウス移動関数と持ち上げ関数の両方をマウス押下関数内に記述する必要があります。これは、マウスを押下した後の動作を設計する必要があるためです。

は非常に重要です。 ワンポイントは:

マウス プレス機能は p で、マウスの動きとマウス リフトはドキュメントです。

マウスが p 上にあるという意味ではないためです。ページ全体を移動するのではなく、

重要なポイントはおそらく次のとおりです。コードは次のとおりです:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #box{
            width: 100px;
            height: 100px;
            background-color: aquamarine;
            border-radius: 14px;
            box-shadow: 2px 2px 6px rgba(0,0,0,.3);

            /* 好家伙 都没设置定位  就想移动 改变left。。。 */
            position: absolute;
        }
    </style>
</head>
<body>
    <div id="box"></div>
    <script>
        let box=document.getElementById("box");
        box.onmousedown=function(event){
            let disx=event.clientX-box.offsetLeft;
            let disy=event.clientY-box.offsetTop;
            //此处不是box.onmousemove,是document.onmousemove
            document.onmousemove=function(event){
                box.style.left=event.clientX-disx+&#39;px&#39;;
                box.style.top=event.clientY-disy+&#39;px&#39;;
            }

            //要写在ommousedown里面
            document.onmouseup=function(){
                //这俩都要置为null
            document.onmousemove=null;
            document.onmouseup=null;
            return false;
        }
        }
        
    </script>
</body>
</html>
ログイン後にコピー

関連する推奨事項: [

JavaScript ビデオ チュートリアル

]

以上がマウス ドラッグ イベントをシミュレートする js (画像とテキストの例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:jb51.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!