ホームページ > ウェブフロントエンド > H5 チュートリアル > マウスの現在の座標をリアルタイムで取得する方法

マウスの現在の座標をリアルタイムで取得する方法

一个新手
リリース: 2018-05-11 14:18:43
オリジナル
3997 人が閲覧しました

この記事は、キャンバス アニメーション開発において、マウス座標やキーボード キーなどの一般的な操作をすべてパブリック ライブラリにカプセル化する単純な機能について説明します。

1. イベントの互換性:

function bindEvent(obj, event, fn) {
        if (obj.attachEvent) { //ie
            obj.attachEvent('on' + event, function () {
                fn.call(obj);
            });
        } else {
            //chrome&ff
            obj.addEventListener(event, fn, false);
        }
    }
ログイン後にコピー

上記は ie8 と互換性があり、ie の下位バージョンでのこのキーワードのポイントを修正します。 以下は chrome および ff と互換性があります。その他の一般的に使用されるパッケージについては、私の JavaScript オープン ソース フレームワーク gdom を参照してください

2. イミディエート式を使用して基本ライブラリを構築します

マウス座標を取得するメソッドを追加します

;(function (window) {
    window.G = {};
    function bindEvent(obj, event, fn) {
        if (obj.attachEvent) { //ie
            obj.attachEvent('on' + event, function () {
                fn.call(obj);
            });
        } else {
            //chrome&ff
            obj.addEventListener(event, fn, false);
        }
    }

    G.getPos = function( dom ){
        var oPos = { x : 0, y : 0 };
        bindEvent( dom, 'mousemove', function( ev ){
            var oEvent = ev || event, x, y;
            if ( oEvent.pageX || oEvent.pageY ){
                x = oEvent.pageX;
                y = oEvent.pageY;
            }else {
                x = oEvent.clientX + document.body.scrollLeft || document.documentElement.scrollLeft;
                y = oEvent.clientX + document.body.scrollTop || document.documentElement.scrollTop;
            }
            x -= dom.offsetLeft;
            y -= dom.offsetTop;
            oPos.x = x;
            oPos.y = y;
        } );
        return oPos;
    };

})(window);
ログイン後にコピー

3. カプセル化された JS ライブラリを導入しますそして、bind Canvas がリッスン オブジェクトであり、現在のマウスの座標を出力します

簡単に観察できるように、ここではマウスの座標を 2 本描画しています。

以上がマウスの現在の座標をリアルタイムで取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート