欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺談Javascript鼠標和滾輪事件

 更新時間:2012年06月27日 10:29:02   作者:  
淺談Javascript鼠標和滾輪事件,鼠標事件也許是web頁面當中最常用到的事件,因為鼠標是最常用的導(dǎo)航設(shè)備
a)鼠標事件  

  鼠標事件也許是web頁面當中最常用到的事件,因為鼠標是最常用的導(dǎo)航設(shè)備,在DOM3級事件上定義了9個鼠標事件,分別為:

  click:當用戶點擊鼠標主鍵通常是指鼠標左鍵或按回車鍵時觸發(fā)。

  dbclick:當用戶雙擊鼠標主鍵時發(fā)生觸發(fā),這個事件并沒有在DOM2級事件中定義但是卻被普遍支持了,后來在DOM3級中得到了標準化。

  mousedown:當用戶按下鼠標任意一個鍵都會觸發(fā),這個事件是不能夠通過鍵盤觸發(fā)的。

  mouseenter:當鼠標圖標從元素外移動至元素邊界內(nèi)時觸發(fā)。該事件不支持冒泡,而且當鼠標在元素的上表面移動時負觸發(fā)此事件。該事件不屬于DOM2級事件,屬于DOM3級后添加的事件,IE 、FF9+、以及opera支持此事件。

  mouseleave:當鼠標處于元素上方,之后移出元素邊界是觸發(fā)該事件,與mouseenter事件相同,不支持冒泡,在元素上方是不觸發(fā),該事件不屬于DOM2級事件,屬于DOM3級后添加的事件,IE 、FF9+、以及opera支持此事件。

  mousemove:當鼠標在某元素周圍移動時重復(fù)觸發(fā),該事件不能通過鍵盤事件觸發(fā)。

  mouseout:當鼠標處于某一元素上方,之后移動到其他元素上方時觸發(fā)。元素移動到原始元素的邊界外,或者原始元素的子元素上,這個事件不能通過鍵盤觸發(fā)。

  mouseover:當用戶將鼠標第一次從某元素邊界外移動到該元素邊界內(nèi)時觸發(fā),這個事件不能夠通過鍵盤觸發(fā)。

  mouseup:當用戶釋放鼠標按鍵是觸發(fā),這個事件不能夠通過鍵盤觸發(fā)。

  頁面上的所有元素都支持鼠標事件,除了mouseenter和mouseleave外,所有的事件都冒泡,并且他們的默認行為是可以被取消掉的。但取消鼠標事件的默認行為可能會影響到其他事件,因為有些鼠標事件是相互依賴的。

  只有當一個mousedown事件和一個mouseup事件在同一個元素上觸發(fā),才能觸發(fā)鼠標的click事件;假設(shè)任何一個事件被取消,click事件將永遠不會被觸發(fā)。相似的原理dbclick事件依賴于click事件,如果連續(xù)兩次click事件中任意一次被取消,dbclick都不會被觸發(fā)。常用的鼠標事件如下:

  1.mousedown、2.mouseup、3.click、4.mousedown、5.mouseup、6.click、7.dbclick。

  無論是click 還是 dbclick事件,都依賴于其他事件的觸發(fā)。

  你可以通過下面的代碼來確定瀏覽器是否在dom2事件上支持鼠標事件,

  var isSupport = document.implementation.hasFeature('MouseEvents','2.0');

  然而值得注意的是在dom3級事件上檢測則有些不同:

  var isSupport = document.implementation.hasFeature('MouseEvent','3.0');

  在鼠標事件上還包含一個子類事件,即wheel事件(滾輪事件)。在wheel事件中只包含一個事件,mousewheel事件,他反應(yīng)鼠標滾輪或其他裝置,如mac的touchpad的交互情況。

b)關(guān)聯(lián)元素

  對于mouseover和mouseout事件來說,還存在著與事件相關(guān)的元素,這連個事件所執(zhí)行的動作包括,移動鼠標從一個元素邊界內(nèi)部到另一個元素邊界內(nèi)部。以mouseover事件為例,他的主要目標元素是鼠標將要移至的元素,而那個關(guān)聯(lián)元素就是失去鼠標的那個元素。同樣對于mouseout事件,主要目標是那個鼠標移出的元素,而關(guān)聯(lián)元素則是獲得鼠標的元素,DOM通過event對象上的relatedTarget屬性來提供關(guān)聯(lián)元素的信息,IE8或更早版本的IE不支持relatedTarge屬性,但卻提供了與其功能相類似的fromElement屬性和toElement屬性。在IE下,當mousemove事件觸發(fā)時,event對象的fromElement包含著關(guān)聯(lián)元素,當mouseout事件觸發(fā)時,event的toElement屬性包含著關(guān)聯(lián)元素。在IE9中支持所有的屬性,一個跨瀏覽器的getRelatedTarget方法可以這樣寫:
復(fù)制代碼 代碼如下:

var eventUtil = {
getRelateTarget:function(event){
if (event.relatedTarget) {
return event.relatedTarget;
}else if(event.fromElement){
return event.fromElement;
}else if(event.toElement){
return event.toElement;
}else {
return null;
}
}
};


c)buttons

  click事件只有當鼠標主鍵點擊了某一元素的時候才會觸發(fā)(或者當某一元素獲得焦點時按下回車鍵),對于mousedown和mouseup來說,在事件對象event上存在一個屬性button,他可以確定是哪個鍵按下或者釋放。在DOM實現(xiàn)的button屬性值通常有三種可能:

  0:代表主鍵,

  1:代表滾輪,

  2:代表副鍵。

  在一般情況下主鍵指的是鼠標的左鍵,副鍵代表鼠標右鍵。

  從IE8開始也提供了button屬性,但卻有著完全不同的取值范圍: 

  0 :沒有按鍵按下,

  1 :主鍵已經(jīng)被按下,

  2 :代表副鍵已經(jīng)被按下,

  3 :主鍵副鍵都被按下,

  4 :代表中間鍵被按下,

  5 :代表主鍵和中間件被按下,

  6 :代表副鍵和中間鍵被按下,

  7 :代表三個鍵都被按下。

  可見DOM 模型下的button屬性的取值范圍比IE模型下的取值范圍要簡單的多,而且個人覺得ie下的操作情況略顯變態(tài)。

d)其他事件信息

  在DOM2級事件上,為事件對象event還提供了detail屬性來提供更多的事件信息,例如對于點擊事件來說,detail可以記錄同一像素位置的點擊次數(shù),detail的值是從1開始計數(shù)的,每次點擊后加一,如果在mousedown和mouseup之間,鼠標發(fā)生移動,這個值將會被清零。

關(guān)于鼠標事件就先寫這些,日后在慢慢補全。

相關(guān)文章

  • 淺析創(chuàng)建javascript對象的方法

    淺析創(chuàng)建javascript對象的方法

    下面小編就為大家?guī)硪黄獪\析創(chuàng)建javascript對象的方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • JS實現(xiàn)數(shù)組扁平化的方法總結(jié)

    JS實現(xiàn)數(shù)組扁平化的方法總結(jié)

    數(shù)組扁平化相信不少朋友在一些面試中被問到過,這在我們?nèi)粘>幊讨幸彩且粋€常規(guī)操作,它需要我們將一個多維數(shù)組轉(zhuǎn)化成一個一維數(shù)組,所以,借著這篇文章,我們今天就一起來匯總一下幾種數(shù)組扁平化的方式,需要的朋友可以參考下
    2024-02-02
  • 微信小程序仿知乎實現(xiàn)評論留言功能

    微信小程序仿知乎實現(xiàn)評論留言功能

    這篇文章主要為大家詳細介紹了微信小程序仿知乎實現(xiàn)評論留言功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • JavaScript前端實現(xiàn)快照的示例代碼

    JavaScript前端實現(xiàn)快照的示例代碼

    snapshot 翻譯為快照,用于直觀獲取頁面在某個運行時的狀態(tài),本文主要為大家詳細介紹 snapshot 工具實現(xiàn)的原理,以及其在項目中的使用,需要的可以參考下
    2023-11-11
  • 一段效率很高的for循環(huán)語句使用方法

    一段效率很高的for循環(huán)語句使用方法

    一段效率很高的for循環(huán)語句使用方法...
    2007-08-08
  • 微信小程序組件化開發(fā)的示例介紹

    微信小程序組件化開發(fā)的示例介紹

    雖然小程序在剛推出時是不支持組件化的,但如今小程序開始支持自定義組件開發(fā),下面這篇文章主要給大家介紹了關(guān)于微信小程序組件化開發(fā)的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Ionic如何創(chuàng)建APP項目

    Ionic如何創(chuàng)建APP項目

    這篇文章主要介紹Ionic如何創(chuàng)建APP項目的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • 用Golang運行JavaScript的實現(xiàn)示例

    用Golang運行JavaScript的實現(xiàn)示例

    這篇文章主要介紹了用Golang運行JavaScript的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • js實現(xiàn)文本框支持加減運算的方法

    js實現(xiàn)文本框支持加減運算的方法

    這篇文章主要介紹了js實現(xiàn)文本框支持加減運算的方法,可實現(xiàn)文本框輸入加減運算式同時右側(cè)實時顯示對應(yīng)計算結(jié)果的功能,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-08-08
  • 原生 JS Ajax,GET和POST 請求實例代碼

    原生 JS Ajax,GET和POST 請求實例代碼

    這篇文章主要介紹了原生 JS Ajax,GET和POST 請求實例代碼的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06

最新評論