最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

淺談Javascript鼠標和滾輪事件

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

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

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

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

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

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

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

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

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

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

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

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

  只有當一個mousedown事件和一個mouseup事件在同一個元素上觸發(fā),才能觸發(fā)鼠標的click事件;假設任何一個事件被取消,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事件,他反應鼠標滾輪或其他裝置,如mac的touchpad的交互情況。

b)關聯(lián)元素

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

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 :主鍵已經被按下,

  2 :代表副鍵已經被按下,

  3 :主鍵副鍵都被按下,

  4 :代表中間鍵被按下,

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

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

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

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

d)其他事件信息

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

關于鼠標事件就先寫這些,日后在慢慢補全。

相關文章

  • Android 自定義view仿微信相機單擊拍照長按錄視頻按鈕

    Android 自定義view仿微信相機單擊拍照長按錄視頻按鈕

    這篇文章主要介紹了Android 自定義view仿微信相機單擊拍照長按錄視頻按鈕,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-07-07
  • 老生常談document.ready和window.onload

    老生常談document.ready和window.onload

    這篇文章主要介紹了document.ready和window.onload的相關知識,包括document.ready和window.onload的區(qū)別,要使用document.ready()或者document.onload()的原因分析,本文結合實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2024-01-01
  • javascript類繼承的實現(xiàn)方法

    javascript類繼承的實現(xiàn)方法

    JavaScript是一種面向對象的語言,而繼承是面向對象編程的一個重要特性,在JavaScript中,繼承的實現(xiàn)方式有多種,本文將介紹javascript類的繼承的實現(xiàn),感興趣的朋友一起看看吧
    2023-10-10
  • JavaScript實現(xiàn)酷炫的鼠標拖尾特效

    JavaScript實現(xiàn)酷炫的鼠標拖尾特效

    這篇文章主要為大家介紹了通過JavaScript實現(xiàn)的一個超級好看的鼠標拖尾特效,文中的示例代碼講解詳細,對我們學習JavaScript有一定的幫助,感興趣的可以學習一下
    2021-12-12
  • 理解JavaScript的caller,callee,call,apply

    理解JavaScript的caller,callee,call,apply

    文章挺好的,雖然我用的是jQuery,但感覺還是有些用的~~~
    2009-04-04
  • JavaScript怎樣在刪除前添加確認彈出框?

    JavaScript怎樣在刪除前添加確認彈出框?

    這篇文章主要介紹了怎樣在刪除前添加確認彈出框?下面小編帶大家來學習一下
    2019-05-05
  • javascript每日必學之條件分支

    javascript每日必學之條件分支

    javascript每日必學之條件分支,本文的主要內容就是介紹的邏輯條件分支,循環(huán),感興趣的小伙伴們可以參考一下
    2016-02-02
  • Webpack4.x的四個核心概念介紹

    Webpack4.x的四個核心概念介紹

    這篇文章介紹了Webpack4.x的四個核心概念介紹,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-06-06
  • 淺談webpack性能榨汁機(打包速度優(yōu)化)

    淺談webpack性能榨汁機(打包速度優(yōu)化)

    這篇文章主要介紹了淺談webpack性能榨汁機(打包速度優(yōu)化),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 基于JavaScript實現(xiàn)回到頁面頂部動畫代碼

    基于JavaScript實現(xiàn)回到頁面頂部動畫代碼

    這篇文章主要介紹了基于JavaScript實現(xiàn)回到頁面頂部動畫代碼的相關資料,代碼簡單易用,非常實用,需要的朋友可以參考下
    2016-05-05

最新評論

金寨县| 本溪市| 瓦房店市| 镇原县| 社会| 开鲁县| 永年县| 大城县| 通化县| 广宁县| 黎城县| 长宁区| 双鸭山市| 孝感市| 佛山市| 浦城县| 乾安县| 宁强县| 南川市| 民权县| 天长市| 阜康市| 竹溪县| 舒兰市| 砚山县| 定远县| 开远市| 富锦市| 苏尼特右旗| 大足县| 晋城| 咸宁市| 高雄市| 漳州市| 尖扎县| 东港市| 齐河县| 元朗区| 辽宁省| 长垣县| 南部县|