0

私はhtmlキャンバスで作業しており、4つのアクションを実行する必要があります:

  • 要素をドラッグ&ドロップ
  • ストレッチ要素
  • 要素を作成する
  • 要素を編集する

だから:

  • ドラッグ アンド ドロップ: canvas.onmousedown と canvas.ondmouseup を使用する必要があります
  • ストレッチ: canvas.onclick で要素を選択し、次に canvas.onclick で要素のフレームを選択します。
  • 作成: canvas.ondblclick
  • 編集: canvas.oncontextmenu

ただし、onmousedown と ondmouseup は、他のすべてのクリックを「オーバーライド」します。および onclic "オーバーライド" ondblclick

私は試した:

canvas.oncontextmenu = function(event) {
        myContextmenu(canvas);   
       return false;
    }

canvas.addEventListener('ontextmenu', function(e) {
     alert("right clic"+e.clientX+";"+e.clientY);
   }, true);

onmousedown、ondmouseup、onclick 関数を試してみると、他のようなものは機能しません。

誰かが私を歓迎するのを手伝ってくれるなら

4

1 に答える 1

0

onmousedown と onmouseup を使用して、クリックとダブルクリックの検出を自分で管理する必要があります。

クリックは、onmousedown に続く onmouseup であり、両方の間でほとんど動きません。

ダブルクリックはもちろん、クリックの素早い連続です。

そのため、マウスダウンの位置や日付など、いくつかの状態変数を保存する必要があります (これはいつでも動きを計算できるようにドラッグするのに役立ちます)。

手動でドラッグ アンド ドロップを行う場合 (つまり、あまり互換性のない HTML5 の新機能を使用しない場合)、移動中にドラッグされたオブジェクトを表示できるように onmousemove をフックする必要があります (これにより、上下の間の移動を検出するのに役立ちます)。

于 2012-05-27T09:25:56.543 に答える