2012-10-27 54 views
0

當前我正在使用KineticJS創建一個Web應用程序,其中包括拖放到畫布上。當你的鼠標保持在你的畫布內時,它工作得很好。拖出畫布導致頁面選擇

但是,如果您離開畫布,按住鼠標左鍵,您將選擇頁面上的所有內容。有可能以某種方式攔截該事件。顯然ONSELECT是別的東西:對

+0

我想我會考慮防止事件傳播。如果在獲得mousedown後離開畫布,但在獲得鼠標移動之前,用戶正在拖動。我想我會攔截mouseover,在畫布上mouseout,mousemove在文檔上。如果我設置的標誌表明我不希望該事件傳遞,我會嘗試用preventDefault殺死它。不知道它會起作用。在嘗試實現類似反向的過程中,由於IE不知道「指針事件:無」CSS規則。 – enhzflep

回答

1

我封裝的canvas元素到一個div,然後分配事件處理程序上的股利,股利覆蓋頁面的佈局類似的100%:

<div class="fillPage"> 
    <canvas id="Viewport"></canvas> 
</div> 

我還添加了事件處理程序模糊(頁面離開)和以下css:

-webkit-touch-callout: none; 
-webkit-user-select: none; 
-khtml-user-select: none; 
-moz-user-select: none; 
-ms-user-select: none; 
user-select: none; 
+0

啊非常感謝您的評論!但在我的情況下,這是不可能的。在網站上有內容,畫布在這個內容的中間。所以我希望內容可以選擇,而不是當你用鼠標離開畫布時。 也許我可以和用戶一起選擇一下,再加上一個選擇!不知道那個CSS。 –

+0

hm,當鼠標離開畫布時,您也可以嘗試停止mousedown事件,可能會有一些js函數用於它 – Vengarioth