1. 程式人生 > 資訊 >偷偷在搜尋欄中塞了匹馬🐎,微軟為部分 Win11 / Win10 使用者送“驚喜”卻遭群嘲

偷偷在搜尋欄中塞了匹馬🐎,微軟為部分 Win11 / Win10 使用者送“驚喜”卻遭群嘲

click 單擊滑鼠左鍵時發生,如果右鍵也按下則不會發生。當用戶的焦點在按鈕上並按了 Enter 鍵時,同樣會觸發這個事件
dblclick 雙擊滑鼠左鍵時發生,如果右鍵也按下則不會發生
mousedown 單擊任意一個滑鼠按鈕時發生
mouseout 滑鼠指標位於某個元素上且將要移出元素的邊界時發生
mouseover 滑鼠指標移出某個元素到另一個元素上時發生
mouseup 鬆開任意一個滑鼠按鈕時發生
mousemove 滑鼠在某個元素上時持續發生

滑鼠點選事件包括 4 個:click(單擊)、dblclick(雙擊)、mousedown(按下)和 mouseup(鬆開)。 其中 click 事件型別比較常用,而 mousedown 和 mouseup 事件型別多用在滑鼠拖放、拉伸操作中。

mousemove 事件型別是一個實時響應的事件,當滑鼠指標的位置發生變化時(至少移動一個畫素),就會觸發 mousemove 事件。該事件響應的靈敏度主要參考滑鼠指標移動速度的快慢以及瀏覽器跟蹤更新的速度。

滑鼠經過包括移過和移出兩種事件型別。當移動滑鼠指標到某個元素上時,將觸發 mouseover 事件;而當把滑鼠指標移出某個元素時,將觸發 mouseout 事件。如果從父元素中移到子元素中時,也會觸發父元素的 mouseover 事件型別。

當一個事件發生後,可以使用事件物件的 target 屬性獲取發生事件的節點元素。如果在 IE 事件模型中實現相同的目標,可以使用 srcElement 屬性。

當事件發生時,獲取滑鼠的位置是件很重要的事件。由於瀏覽器的不相容性,不同瀏覽器分別在各自事件物件中定義了不同的屬性,說明如下表所示。這些屬性都是以畫素值定義了滑鼠指標的座標,但是由於它們參照的座標系不同,導致精確計算滑鼠的位置比較麻煩。

通過事件物件的 button 屬性可以獲取當前滑鼠按下的鍵,該屬性可用於 click、mousedown、mouseup 事件型別。不過不同模型的約定不同,具體說明如下表所示。

滑鼠事件物件的 button 屬性
單擊 IE 事件模型 DOM 事件模型
左鍵 1 0
右鍵 2 2
中鍵 4 1

IE 事件模型支援位掩碼技術,它能夠偵測到同時按下的多個鍵。例如,同時按下左右鍵,則 button 屬性值為 1+2=3;同時按下中鍵和右鍵,則 button 屬性值為 2+4=6;同時按下左鍵和中鍵,則 button 屬性值為 1+4=5;同時按下 3 個鍵,則 button 屬性值為 1+2+4=7。

但是 DOM 模型不支援這種掩碼技術,如果同時按下多個鍵,就不能夠準確偵測。例如,按下右鍵(2)與同時按下左鍵和右鍵(0+2=2)的值是相同的。因此,對於 DOM 模型來說,這種 button 屬性約定值存在很大的缺陷。不過,在實際開發中很少需要同時檢測多個滑鼠按鈕問題,一般僅需要探測滑鼠左鍵或右鍵單擊行為。