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

站長資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

javascript有哪幾種事件

javascript有:1、UI事件;2、焦點(diǎn)事件;3、鼠標(biāo)與滾輪事件;4、鍵盤與文本事件;5、復(fù)合事件;6、變動(dòng)事件;7、HTML5事件;8、設(shè)備事件;9、觸摸與手勢事件。

javascript有哪幾種事件

本教程操作環(huán)境:windows7系統(tǒng)、javascript1.8.5版、Dell G3電腦。

JavaScript事件類型

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

  • UI事件

  • 焦點(diǎn)事件

  • 鼠標(biāo)與滾輪事件

  • 鍵盤與文本事件

  • 復(fù)合事件

  • 變動(dòng)事件

  • HTML5事件

  • 設(shè)備事件

  • 觸摸與手勢事件

第一部分:UI事件

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

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

1.load事件

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

   這個(gè)事件是JavaScript中最常用的事件,比如我們經(jīng)常會(huì)使用window.onload=function(){};這種形式,即當(dāng)頁面完全加載完之后執(zhí)行其中的函數(shù)。

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

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

   即當(dāng)圖片完全加載出來之后會(huì)有彈窗。當(dāng)然也可以使用JS來實(shí)現(xiàn),如下所示:

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

2.unload事件

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

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

   值得注意的是,一定要小心編寫onload事件中的代碼,因?yàn)樗窃陧撁嫘遁d后才觸發(fā),所以說頁面加載后存在的那些對象,在onload觸發(fā)之后就不一定存在了!

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

3.resize事件

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

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

   寫了這句代碼,那么瀏覽器的大小發(fā)生改變時(shí)就會(huì)彈出窗口。

4.scroll事件

  這個(gè)事件會(huì)在文檔被滾動(dòng)期間重復(fù)被觸發(fā),所以應(yīng)當(dāng)盡量保持事件處理程序的代碼簡單。

第二部分:焦點(diǎn)事件

  焦點(diǎn)事件會(huì)在頁面元素獲得或失去焦點(diǎn)時(shí)觸發(fā)。主要有下面幾種:

  • blur 在元素失去焦點(diǎn)時(shí)觸發(fā)。這個(gè)事件不冒泡,所有瀏覽器都支持。

  • focus 在元素獲得焦點(diǎn)時(shí)觸發(fā)。這個(gè)事件不冒泡,所有瀏覽器都支持。

  • focusin 在元素獲得焦點(diǎn)時(shí)觸發(fā)。這個(gè)事件冒泡,某些瀏覽器不支持。

  • focusout 在元素失去焦點(diǎn)時(shí)觸發(fā)。這個(gè)事件冒泡,某些瀏覽器不支持。

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

第三部分:鼠標(biāo)與滾輪事件

  鼠標(biāo)事件是Web開發(fā)中最常用的一類事件,因?yàn)槭髽?biāo)是最主要的定位設(shè)備。

  • click—用戶單擊鼠標(biāo)左鍵或按下回車鍵觸發(fā)

  • dbclick—用戶雙擊鼠標(biāo)左鍵觸發(fā)。

  • mousedown—在用戶按下了任意鼠標(biāo)按鈕時(shí)觸發(fā)。

  • mouseenter—在鼠標(biāo)光標(biāo)從元素外部首次移動(dòng)到元素范圍內(nèi)時(shí)觸發(fā)。此事件不冒泡。

  • mouseleave—元素上方的光標(biāo)移動(dòng)到元素范圍之外時(shí)觸發(fā)。不冒泡。

  • mousemove—光標(biāo)在元素的內(nèi)部不斷的移動(dòng)時(shí)觸發(fā)。

  • mouseover—鼠標(biāo)指針位于一個(gè)元素外部,然后用戶將首次移動(dòng)到另一個(gè)元素邊界之內(nèi)時(shí)觸發(fā)。

  • mouseout—用戶將光標(biāo)從一個(gè)元素上方移動(dòng)到另一個(gè)元素時(shí)觸發(fā)。

  • mouseup—在用戶釋放鼠標(biāo)按鈕時(shí)觸發(fā)。

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

  重要:只有在同一個(gè)元素上相繼觸發(fā)mousedown和mouseup事件,才會(huì)觸發(fā)click事件。同樣,只有在同一個(gè)元素上觸發(fā)兩次click事件,才會(huì)觸發(fā)dbclick事件。

  dbclick事件的產(chǎn)生過程如下:

  • mousedown

  • mouseup

  • click

  • mousedown

  • mouseup

  • click

  • dbclick

  上面介紹了有關(guān)鼠標(biāo)的事件,下面介紹一些對于鼠標(biāo)光標(biāo)的位置:客戶區(qū)坐標(biāo)位置、頁面坐標(biāo)位置、屏幕坐標(biāo)位置

一、客戶區(qū)坐標(biāo)位置

  通過客戶區(qū)坐標(biāo)可以知道鼠標(biāo)是在視口中什么位置發(fā)生的。

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

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

  當(dāng)我點(diǎn)擊按鈕的左上角時(shí),顯示為00。效果如下:

javascript有哪幾種事件

二.頁面坐標(biāo)位置

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

  頁面坐標(biāo)

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

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

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

<button id="button"> 點(diǎn)擊我</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瀏覽器下可得到同樣結(jié)果。

三.屏幕坐標(biāo)位置

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

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

最終的結(jié)果如下:

javascript有哪幾種事件

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

四.修改鍵

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

<button id="button"> 點(diǎn)擊我</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>

這個(gè)例子中,我首先創(chuàng)建了一個(gè)array數(shù)組,接著如果我按下了那幾個(gè)鍵,就會(huì)存入相應(yīng)的名稱。這里我同時(shí)按下了四個(gè)鍵,結(jié)果如下:

javascript有哪幾種事件

即最終將數(shù)組中的四個(gè)值拼接成了字符串顯示出來。

五、相關(guān)元素

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

  當(dāng)我是用左鍵產(chǎn)生mousedown事件時(shí),彈出窗口為0,中間鍵為1,右鍵為2。

七、鼠標(biāo)滾輪事件

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

當(dāng)我向下滾動(dòng)滾輪時(shí),效果如下:

javascript有哪幾種事件

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

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

  1. keydown:當(dāng)用戶按下鍵盤上的任意鍵時(shí)觸發(fā)。按住不放,會(huì)重復(fù)觸發(fā)。

  2. keypress:當(dāng)用戶按下鍵盤上的字符鍵時(shí)觸發(fā)。按住不放,會(huì)重復(fù)觸發(fā)。

  3. keyup:當(dāng)用戶釋放鍵盤上的鍵時(shí)觸發(fā)。

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

  這幾個(gè)事件在用戶通過文本框輸入文本時(shí)才最常用到。

  鍵盤事件:

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");             }         }

【推薦學(xué)習(xí):javascript高級(jí)教程】

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
国产成人精品免费视| 国产日韩欧美一区二区三区在线观看 | 国产欧美日本| 欧美日韩伊人| 亚洲综合福利| 日韩欧美2区| 国产欧美日韩视频在线| 欧美黄色精品| 欧美一级鲁丝片| 久久精品一区二区不卡| 亚洲婷婷免费| 水野朝阳av一区二区三区| 中文字幕一区二区三区四区久久 | 国产高清一区二区| 美女精品在线| 日韩激情视频网站| 久久精品一区二区国产| 精品九九久久| av高清不卡| 99成人在线视频| 国产精品试看| 国产日本亚洲| 在线人成日本视频| 欧美69视频| 亚洲精品高潮| 国产精品久久久久久久免费软件| 国产不卡av一区二区| 免费国产自久久久久三四区久久| 视频一区在线播放| 久久超级碰碰| 午夜精品久久久久久久久久蜜桃| 日韩网站在线| 日本va欧美va精品发布| 国产精品3区| 亚洲va在线| 日韩1区2区3区| 成人国产精品一区二区网站| 国产综合精品| 日韩国产高清在线| 福利片在线一区二区| 亚洲激精日韩激精欧美精品| 亚洲精品人人| 91亚洲一区| 免费看黄色91| 国产一区二区三区四区五区 | 免费av一区二区三区四区| 亚洲免费福利一区| 老色鬼精品视频在线观看播放| 欧美1区2区3区| 国产精品夜夜夜| 激情婷婷综合| 欧美极品中文字幕| 亚洲一区二区三区高清不卡| 欧美激情亚洲| 蜜桃av一区| 国产传媒在线观看| 亚洲精品观看| 欧美午夜精彩| 欧美激情一区| 丝袜美腿成人在线| 四虎成人av| 日本综合精品一区| 日韩高清成人| 欧美日韩1区2区3区| 欧美91视频| 麻豆一区二区三| 蜜臀久久99精品久久久画质超高清| 久久精品亚洲一区二区| 亚洲一区二区三区无吗| 日韩精品dvd| 国产精品亚洲欧美日韩一区在线| 黄色成人在线网址| 国产福利91精品一区二区| 中文字幕一区日韩精品| 久久精品亚洲欧美日韩精品中文字幕| 国产欧美另类| 日韩制服丝袜先锋影音| 国产精品成人a在线观看| 亚洲美女91| 亚洲精品午夜av福利久久蜜桃| 国产一区二区色噜噜| 日本精品在线播放| 国产精品美女| 激情欧美亚洲| 亚洲精品**中文毛片| 国产精品免费精品自在线观看| 国产精品毛片| 99久久婷婷这里只有精品| 久久av电影| 日韩动漫一区| 男人天堂欧美日韩| 99久久夜色精品国产亚洲1000部| 国产麻豆一区二区三区精品视频| 日韩中文字幕91| 欧美日韩国产欧| 91精品国产福利在线观看麻豆| 国产精品原创| 成人污污视频| 美女久久99| 国产精品激情| 欧美日韩午夜电影网| 亚洲香蕉久久| 免费成人在线影院| 丝袜美腿亚洲色图| 天使萌一区二区三区免费观看| 欧美不卡在线| 婷婷激情久久| 日韩伦理一区| 久久久男人天堂| 麻豆精品在线观看| 国产精品三级| 国产精品日本一区二区三区在线| 日韩精品五月天| 亚洲三级观看| 亚洲免费观看高清完整版在线观| 首页欧美精品中文字幕| 黄色亚洲免费| 伊人影院久久| 黄色免费成人| 免费欧美日韩| 亚洲精品麻豆| 青青在线精品| 青草久久视频| 国产亚洲字幕| 麻豆精品在线| 成人综合一区| 中文字幕一区久| 91精品啪在线观看国产18| 久久中文字幕av| 中文精品在线| 中文字幕成人| 欧美一区免费| 精品中文字幕一区二区三区 | 麻豆视频观看网址久久| 美女视频黄久久| 久久精品国产在热久久| 国产精品免费不| 免费日韩成人| 97精品国产| 国精品一区二区三区| 亚洲国产成人精品女人| 午夜在线观看免费一区| 亚洲日本在线观看视频| 国产欧美一区二区三区国产幕精品| 国产精品久久国产愉拍| 国产69精品久久| 99国产精品一区二区| 99在线精品免费视频九九视| 久久午夜影视| 日韩av网站在线观看| 久久久久九九精品影院| 国产精品久久久久久久久久10秀| 免费在线小视频| 久久www成人_看片免费不卡| 欧美一区精品| 国产成年精品| 亚洲精品1区2区| 伊人精品久久| 免费亚洲婷婷| 亚洲一级黄色| 日韩精品视频中文字幕| 久久男人av| 欧美日韩国产高清| 国产欧美一区二区三区精品观看| 亚洲黄色中文字幕| 免费一区二区视频| 国产精品v一区二区三区| 国产欧美一区二区三区精品酒店| 夜夜嗨一区二区| 国产伦理一区| 国产图片一区| 美女av一区| 国产伊人精品| 91精品麻豆| 亚洲黄色免费看| 蜜臀av性久久久久蜜臀aⅴ流畅 | 人人精品久久| av资源中文在线天堂| 好吊视频一区二区三区四区| 手机精品视频在线观看| 久久av影视| 夜夜精品视频| 精品在线网站观看| 亚洲欧洲日本mm| 国产精品hd| 中文精品视频| 成人在线视频免费看| 日韩专区欧美专区| 国产理论在线| 亚洲精品日本| 一本大道色婷婷在线| 亚洲精品日本| 久久九九精品| 国产精品主播| 在线国产一区二区| 国产精品夜夜夜| 久久成人精品| 激情亚洲影院在线观看| 69精品国产久热在线观看| 国产99精品|