久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

javascript有哪幾種事件

javascript有:1、UI事件;2、焦點事件;3、鼠標與滾輪事件;4、鍵盤與文本事件;5、復合事件;6、變動事件;7、HTML5事件;8、設備事件;9、觸摸與手勢事件。

javascript有哪幾種事件

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

JavaScript事件類型

Web瀏覽器中可能發生的事件有很多類型。這里我將主要將下面幾種常用的事件類型:

  • UI事件

  • 焦點事件

  • 鼠標與滾輪事件

  • 鍵盤與文本事件

  • 復合事件

  • 變動事件

  • HTML5事件

  • 設備事件

  • 觸摸與手勢事件

第一部分:UI事件

  UI事件中UI即(User Interface,用戶界面),當用戶與頁面桑拿的元素交互時觸發。

  UI事件中主要包括load,unload,abort,error,select,resize,scroll事件。

1.load事件

   此事件為當頁面完全加載完之后(包括所有的圖像、js文件、css文件等外部資源),就會觸發window上面的load事件。

   這個事件是JavaScript中最常用的事件,比如我們經常會使用window.onload=function(){};這種形式,即當頁面完全加載完之后執行其中的函數。

   另外,之前一直都不知道,這個事件還可以用在其他元素上,比如圖像元素,如下所示:

<img src="smile.png" onload="alert('loaded')">  

   即當圖片完全加載出來之后會有彈窗。當然也可以使用JS來實現,如下所示:

var img=document.getElementById("img"); EventUtil.addHandler(img,"load",function(){       event=EventUtil.getEvent(event);       alert(EventUtil.getTarget(event).src); }); 

2.unload事件

   顯然,這個事件是與load事件相對的。在文檔被完全卸載后觸發。用戶從一個頁面切換到另一個頁面就會觸發unload時間。利用這個事件最多的情況是清楚引用,避免內存泄漏。

   這個事件同樣有兩種方式來指定。一種是JavaScript方式,使用EventUtil.addHandler();另一種就是在body元素中添加一個特性。

   值得注意的是,一定要小心編寫onload事件中的代碼,因為它是在頁面卸載后才觸發,所以說頁面加載后存在的那些對象,在onload觸發之后就不一定存在了!

<body onload="alert('changed')">

3.resize事件

   當調整瀏覽器的窗口到一個新的寬度或高度時,就會觸發resize事件。這個事件在window(窗口)上面觸發。因此同樣可以通過JS或者body元素中的onresize特性來指定處理程序。  

<body onresize="alert('changed')">

   寫了這句代碼,那么瀏覽器的大小發生改變時就會彈出窗口。

4.scroll事件

  這個事件會在文檔被滾動期間重復被觸發,所以應當盡量保持事件處理程序的代碼簡單。

第二部分:焦點事件

  焦點事件會在頁面元素獲得或失去焦點時觸發。主要有下面幾種:

  • blur 在元素失去焦點時觸發。這個事件不冒泡,所有瀏覽器都支持。

  • focus 在元素獲得焦點時觸發。這個事件不冒泡,所有瀏覽器都支持。

  • focusin 在元素獲得焦點時觸發。這個事件冒泡,某些瀏覽器不支持。

  • focusout 在元素失去焦點時觸發。這個事件冒泡,某些瀏覽器不支持。

  注意:即使blur和focus不冒泡,也可以在捕獲階段偵聽到他們。

第三部分:鼠標與滾輪事件

  鼠標事件是Web開發中最常用的一類事件,因為鼠標是最主要的定位設備。

  • click—用戶單擊鼠標左鍵或按下回車鍵觸發

  • dbclick—用戶雙擊鼠標左鍵觸發。

  • mousedown—在用戶按下了任意鼠標按鈕時觸發。

  • mouseenter—在鼠標光標從元素外部首次移動到元素范圍內時觸發。此事件不冒泡。

  • mouseleave—元素上方的光標移動到元素范圍之外時觸發。不冒泡。

  • mousemove—光標在元素的內部不斷的移動時觸發。

  • mouseover—鼠標指針位于一個元素外部,然后用戶將首次移動到另一個元素邊界之內時觸發。

  • mouseout—用戶將光標從一個元素上方移動到另一個元素時觸發。

  • mouseup—在用戶釋放鼠標按鈕時觸發。

  注意到:上述所有事件除了mouseenter和mouseleave外都冒泡。

  重要:只有在同一個元素上相繼觸發mousedown和mouseup事件,才會觸發click事件。同樣,只有在同一個元素上觸發兩次click事件,才會觸發dbclick事件。

  dbclick事件的產生過程如下:

  • mousedown

  • mouseup

  • click

  • mousedown

  • mouseup

  • click

  • dbclick

  上面介紹了有關鼠標的事件,下面介紹一些對于鼠標光標的位置:客戶區坐標位置、頁面坐標位置、屏幕坐標位置

一、客戶區坐標位置

  通過客戶區坐標可以知道鼠標是在視口中什么位置發生的。

  clientX和clientY分別表示鼠標點擊的位置。以body的左上角為原點,向右為X的正方向,向下為Y的正方向。這兩個都是event的屬性。舉例如下:

<button id="clickMe">點我</button>     <script>         var button=document.getElementById("clickMe");         button.onclick=function(event){             alert(event.clientY+""+event.clientX);         };     </script>

  當我點擊按鈕的左上角時,顯示為00。效果如下:

javascript有哪幾種事件

二.頁面坐標位置

  和客戶區坐標位置不同,頁面坐標位置表示鼠標光標在頁面而非視口中的位置。因此坐標是從頁面本身而非視口的左邊和頂邊計算的。如果前面的話不能很好的理解,接著看這里:在頁面沒有滾動的情況下,頁面坐標位置和客戶區坐標位置是相同的。

  頁面坐標

<!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <title>頁面坐標位置</title>     <style>         *{             margin:0;             padding:0;         }         div{             width: 800px;             height: 1200px;             /*我的電腦的視口高度為960px;*/             background: #ccc;         }     </style> </head> <body>     <div></div>     <button id="button"> 點擊我</button>     <script>         var button=document.getElementById("button");         button.onclick=function(){             alert("pageX為"+event.pageX+"pageY為"+event.pageY);         };     </script> </body> </html>

在上面的例子中,我把p的高設置為了1200px;而我的瀏覽器視口高度為960px;所以一定需要滾動我們才能點擊按鈕,最終得到的結果是:pageX為13pageY為1210。

然而IE8及更早的瀏覽器是不支持事件對象上的頁面坐標的,即不能通過pageX和pageY來獲得頁面坐標,這時需要使用客戶區坐標和滾動信息來計算了。而滾動信息需要使用document.body(混雜模式)、document.documentElement(標準模式)中的scrollLeft和scrollTop屬性。舉例如下:

<button id="button"> 點擊我</button>     <script>         var button=document.getElementById("button");         button.onclick=function(){             var pageX=event.clientX+(document.body.scrollLeft||document.documentElement.scrollLeft);             var pageY=event.clientY+(document.body.scrollRight||document.documentElement.scrollRight);             alert("pageX為"+pageX+"pageY為"+pageY);         };     </script>

此例子在IE瀏覽器下可得到同樣結果。

三.屏幕坐標位置

  與前兩者又有所不同,鼠標事件發生時,還有一個光標相對于整個電腦屏幕的位置。通過screenX和screenY屬性就可以確定鼠標事件發生時鼠標指針相對于整個屏幕的位置。舉例如下:

<!DOCTYPE html> <html> <head>     <meta charset="UTF-8">     <title>頁面坐標位置</title>     <style>         *{             margin:0;             padding:0;         }      </style> </head> <body>     <button id="button"> 點擊我</button>     <script>         var button=document.getElementById("button");         button.onclick=function(){             alert("X為:"+event.screenX+"Y為:"+event.screenY);         };     </script> </body> </html>

最終的結果如下:

javascript有哪幾種事件

顯然screenX和screenY是相對于屏幕的左方和上方的。

四.修改鍵

  當點擊某個元素時,如果我們同時按下了ctrl鍵,那么事件對象的ctrlKey屬性值將為true,否則為false,對于alt、shift、meta(windows鍵盤的windows鍵、蘋果機的Cmd鍵)的事件屬性altKey、shiftKey、metaKey同樣如此。下面舉例如下:

<button id="button"> 點擊我</button>     <script>         var button=document.getElementById("button");         button.onclick=function(){             var array=new Array();             if(event.shiftKey){                 array.push("shift");             }             if(event.ctrlKey){                 array.push("ctrl");             }             if(event.altKey){                 array.push("alt");             }             if(event.metaKey){                 array.push("meta");             }             alert(array.join(","));         };     </script>

這個例子中,我首先創建了一個array數組,接著如果我按下了那幾個鍵,就會存入相應的名稱。這里我同時按下了四個鍵,結果如下:

javascript有哪幾種事件

即最終將數組中的四個值拼接成了字符串顯示出來。

五、相關元素

<button id="button"> 點擊我</button>     <script>         var button=document.getElementById("button");         button.onmouseup=function(){             alert(event.button);         };     </script>

  當我是用左鍵產生mousedown事件時,彈出窗口為0,中間鍵為1,右鍵為2。

七、鼠標滾輪事件

    <script>         document.onmousewheel=function(){             alert(event.wheelDelta);         };       </script>

當我向下滾動滾輪時,效果如下:

javascript有哪幾種事件

第四部分:鍵盤和文本事件

  該部分主要有下面幾種事件:

  1. keydown:當用戶按下鍵盤上的任意鍵時觸發。按住不放,會重復觸發。

  2. keypress:當用戶按下鍵盤上的字符鍵時觸發。按住不放,會重復觸發。

  3. keyup:當用戶釋放鍵盤上的鍵時觸發。

  4. textInput:這是唯一的文本事件,用意是將文本顯示給用戶之前更容易攔截文本。

  這幾個事件在用戶通過文本框輸入文本時才最常用到。

  鍵盤事件:

document.addEventListener("keydown",handleKeyDownClick,false);          function handleKeyDownClick(event) {             var e = event||window.event||arguments.callee.caller.arguments[0];             if (e&&e.keyCode == 13) {                 alert("keydown");             }         }

【推薦學習:javascript高級教程】

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
欧美精品第一区| 国产真实久久| 日韩国产欧美视频| 国产欧美一区二区三区国产幕精品 | 国产日本久久| 国产黄色精品| 91精品久久久久久久久久不卡| 久久天堂精品| 在线精品亚洲| 欧美aaaaaa午夜精品| 精精国产xxxx视频在线野外| 美女日韩在线中文字幕| 国产精品一区二区三区www| 国产精品22p| 欧美日韩高清| 狂野欧美性猛交xxxx| 91精品国产福利在线观看麻豆| 亚洲深深色噜噜狠狠爱网站 | 国产精品www994| 欧美亚洲激情| 国产麻豆一区二区三区精品视频| 国产美女高潮在线| 亚洲欧美久久久| 国产极品久久久久久久久波多结野 | 亚洲尤物av| 国产精品久久久久9999高清| 91精品一区国产高清在线gif| 亚州精品视频| 欧美精品黄色| 不卡一二三区| 国产精品白浆| 日本中文字幕一区二区视频| 亚洲二区在线| 国产一区二区色噜噜| 亚洲欧洲一区二区天堂久久| 精品国产麻豆| 国产美女亚洲精品7777| 亚洲乱码视频| 午夜宅男久久久| 亚洲高清成人| 成人综合一区| 精品理论电影在线| 国产精品国码视频| 欧美日一区二区三区在线观看国产免| 亚洲作爱视频| 激情偷拍久久| 激情偷拍久久| 亚洲经典在线| 久久亚洲一区| 99re国产精品| 夜夜精品视频| 视频在线在亚洲| 久久久免费人体| 精品国产一区二区三区2021| 美女毛片一区二区三区四区最新中文字幕亚洲 | 免费观看不卡av| 日本精品在线中文字幕| 高清一区二区| 久久久久久久久丰满| 欧美日韩在线二区| 国产视频亚洲| 亚洲精品中文字幕99999| 美女国产精品| 国产欧美日本| 中文字幕人成乱码在线观看| 日本在线精品| 亚洲影院天堂中文av色| 国产精品探花在线观看| 欧美国产美女| 中文国产一区| 国产精品99久久免费观看| 日韩高清中文字幕一区二区| 美女少妇全过程你懂的久久| 亚洲美女91| 电影91久久久| 久久一二三区| 国产一区国产二区国产三区| 欧美在线亚洲| 国产精品videossex| 日韩精品网站| 欧美影院精品| 黄色不卡一区| 国产人成精品一区二区三| 尤物tv在线精品| 国产亚洲精品精品国产亚洲综合| 日韩精品dvd| 欧美日韩99| 亚洲va中文在线播放免费| 免费人成网站在线观看欧美高清| 精品国内亚洲2022精品成人| 在线综合亚洲| www.九色在线| 久久国产精品美女| 午夜亚洲福利在线老司机| 97在线精品| 四虎精品永久免费| 亚州av乱码久久精品蜜桃| 久久中文在线| 国产欧美亚洲一区| 蜜芽一区二区三区| 日韩成人亚洲| 免费一区二区三区在线视频| 亚洲丝袜美腿一区| 人人精品久久| 亚洲欧美日韩视频二区| 欧美aa在线观看| 欧美va天堂在线| 久久久久久色 | 久久国产精品色av免费看| 欧美日韩在线网站| 国产96在线亚洲| 国产日韩免费| 日本不卡高清| 日韩精品五月天| 午夜性色一区二区三区免费视频| 99国产一区| 亚洲精品a级片| 亚洲手机在线| 欧美丝袜一区| 国产精品色网| 免费日韩av片| aa国产精品| 麻豆精品91| 色狠狠一区二区三区| 亚洲另类黄色| 国产精品亚洲片在线播放| 天堂俺去俺来也www久久婷婷| 亚洲一区欧美二区| 亚洲精品国模| 国产精品任我爽爆在线播放| 国产精品久一| 女生影院久久| 日韩视频免费| 日韩精品三区四区| 麻豆国产精品777777在线| 桃色一区二区| 免费看黄色91| 国产精品一区二区av交换 | 国产三级一区| 91免费精品| 亚洲性图久久| 欧美一区影院| 亚洲精品国产嫩草在线观看| 久热综合在线亚洲精品| 国产欧美88| 久久亚洲国产| 欧美日本不卡| 久久精品av| 日本精品在线播放| 狠狠躁少妇一区二区三区| 亚洲欧美日韩一区在线观看| 国产精品xxx在线观看| 在线看片不卡| 精品精品99| 日韩影片在线观看| 色偷偷色偷偷色偷偷在线视频| 美女精品网站| 美女av在线免费看| 天堂精品久久久久| 91成人超碰| 四虎成人av| 日韩精品第一| 夜夜嗨av一区二区三区网站四季av| 精品中文字幕一区二区三区| 亚洲精品国模| 欧美日韩国产一区精品一区| 精品不卡一区| 国产精品一区免费在线| 免费成人性网站| 在线日韩av| 成人午夜亚洲| 国产精品一区二区三区四区在线观看 | 国产精品激情| 欧美一区激情| 日韩av午夜在线观看| 亚洲美洲欧洲综合国产一区 | 日本在线高清| 中文av在线全新| 中文字幕人成乱码在线观看| 国产精品一卡| 亚洲小说春色综合另类电影| 亚洲激情中文| 亚洲一区欧美二区| 一区免费在线| 自由日本语亚洲人高潮| 激情五月综合| 99香蕉国产精品偷在线观看| 黑丝一区二区三区| 一区在线免费| 亚洲人成毛片在线播放女女| 亚洲永久精品唐人导航网址| 亚洲97av| 美女视频一区在线观看| 鲁大师精品99久久久| 国产伊人久久| 欧美日韩国产观看视频| 国产在线|日韩| 午夜电影亚洲| 亚洲精品影视| 免费观看亚洲天堂|