2012-05-26 28 views
0

我在HTML畫布工作,我需要做4個動作:onmousedown事件,ondmouseup,的onclick,onfocus此,oncontextmenu在HTML畫布

  • 拖&下降元素
  • 拉伸元素
  • 科瑞elemnts
  • 編輯elemnts

所以對:

  • 拖動&降:我應該使用canvas.onmousedown和canvas.ondmouseup
  • 拉伸:canvas.onclick選擇元件,則元件的框架上canvas.onclick
  • 穿心蓮:canvas.ondblclick
  • 編輯:canvas.oncontextmenu

但onmousedown和ondmouseup「重寫」所有其他clic。 和onclic 「覆蓋」 onfocus此

我想:

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

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

一個像其他的,如果我有onmousedown事件,ondmouseup,的onclick fonction嘗試不起作用。

如果有人可以幫助我歡迎

+0

http://georgealways.github.com/gee/ - 您的歡迎;) – Saturnix

回答

0

你必須自己管理單擊並使用onmousedown事件和onmouseup雙擊檢測。

點擊是繼onmousedown事件既之間幾乎沒有動一onmouseup。

雙擊當然是點擊的快速連續。

所以,你必須保存了幾個狀態變量,如鼠標按下(這是在拖,所以你可以計算在任何時間,此舉有用)的位置和日期。

如果您手動執行拖動操作(即不使用不兼容的HTML5新功能),您必須在鼠標移動過程中進行拖動操作,以便在移動過程中顯示拖動的對象(並幫助檢測向下移動和向下移動向上)。