2015-09-27 43 views
0

我正在製作一個使用canvas的小繪畫應用程序,並且在畫布中繪製一切都很好,但只要用戶離開畫布的邊界,頁面上的所有內容都將被選中。防止Chrome在畫布外繪製時選擇所有內容?

這不會發生在Firefox中。我已經向幾個人展示了這款應用程序,他們中的每一個人都提到了它的煩人程度。我讀過,顯然我可以把

-moz-user-select: none; 
-webkit-user-select: none; 
user-select: none; 

在頁面上的每一個div,但似乎是矯枉過正。此外,我的用戶可以選擇頁面上的東西。它在Firefox中完美運行,在離開畫布時不會選擇任何內容,但在Chrome中由於某些原因在畫布中繪製時,光標在繪圖時變爲選擇光標,並且在用鼠標左鍵離開畫布時仍然按住所有內容。

這是可以解決的嗎?

+0

不禁大爲沒有看到你的代碼,但監聽'mouseout'事件,並關閉您的選擇過程。鼠標離開畫布元素的邊界時觸發鼠標。 – markE

+0

@markE:是的,這似乎是目前最好的解決方案。 –

回答

0

您可以使用星號* CSS選擇器這樣的:

* { 
    -moz-user-select: none; 
    -webkit-user-select: none; 
    user-select: none; 
} 

另一種可能的解決辦法是將CSS規則適用於body元素,可能會工作得很好,但它是未經測試。

您可以在用戶關注canvas元素時設置這些CSS規則,並在用戶blurs畫布(例如,將焦點置於頁面上)時取消設置。 使用這種方法,人們仍然可以選擇網頁的某些部分,但他們在畫布中時不會選擇任何內容。

+0

噢,我想我可以使用JavaScript來切換這些規則的開啓和關閉,具體取決於他們是否正在繪製。好吧,我想我會這樣做,謝謝。不過希望有更好的方法。 –

相關問題