1. 程式人生 > >JavaScript學習筆記(六)—— 異步編碼

JavaScript學習筆記(六)—— 異步編碼

加載 scree 鼠標位置 函數名 timestamp pagex 觸摸 切換 text

第七章 異步編碼

1 事件處理程序

處理程序:即網頁加載完畢後將執行的代碼,稱回調函數或監聽器;

包含:處理函數+window.onload=函數名;

 1 <script language="JavaScript" type="text/JavaScript">
 2 
 3 function page(){
 4 
 5 alert("I‘m alive!");
 6 
 7 }
 8 
 9 window.onload=page;
10 
11 </script>

2 響應事件的方式編寫代碼

getElementByTagName返回NodeList對象,

表示DOM事件對象的屬性:

target:存儲觸發事件的對象;

type:是字符串,如("click","load")指出發生的是哪種事件

timeStamp:提供事件發生時間屬性;

keyCode:告訴用戶剛剛按下那個鍵

clientX:確定鼠標/單擊位置離瀏覽器窗口左邊緣有多遠;

clientY:確定鼠標/單擊位置離瀏覽器窗口上邊緣有多遠;

screenX:確定鼠標/單擊位置離屏幕窗口左邊緣有多遠;

screenY:確定鼠標/單擊位置離屏幕窗口上邊緣有多遠;

pageX:確定鼠標/單擊位置離網頁窗口左邊緣有多遠;

pageY:確定鼠標/單擊位置離網頁窗口上邊緣有多遠;

touches:在觸摸設備上確定用戶用多少根手指觸摸屏幕;

程序1 單擊+計時

  1 <!doctype html>
  2 
  3 <html lang="en">
  4 
  5 <head>
  6 
  7 <title>Image Guess</title>
  8 
  9 <meta charset="utf-8">
 10 
 11 <style type="text/css">
 12 
 13 body{margin:20px;}
 14 
 15 img{margin:20px;}
 16 
 17 </style>
 18 
 19 <script language="JavaScript" type="text/JavaScript">
 20
21 window.onload=init; 22 23 //初始捕捉事件 24 25 function init(){ 26 27 var images=document.getElementsByTagName("img"); 28 29 for(var i=0;i<images.length;i++) 30 31 images[i].onclick=showAnswer; 32 33 } 34 35 //處理單擊事件 36 37 function showAnswer(e){//單擊產生一個事件對象被傳遞 38 39 var image=e.target;//target指出觸發事件的元素 40 41 var name=image.id; 42 43 name=name+".jpg"; 44 45 image.src=name; 46 47 48 49 setTimeout(reblur, 2000, image); 50 51 } 52 53 //時間事件,2秒後變回模糊 54 55 function reblur(image) { 56 57 var name = image.id; 58 59 name = name + "blur.jpg"; 60 61 image.src = name; 62 63 } 64 65 /* 66 67 function init(){ 68 69 var image=document.getElementById("zero"); 70 71 image.onclick=showAnswer; 72 73 } 74 75 window.onload=init; 76 77 function showAnswer(){ 78 79 var image=document.getElementById("zero"); 80 81 image.src="zero.jpg"; 82 83 } 84 85 */ 86 87 //鼠標自動 88 89 /* 90 91 window.onload = function() { 92 93 var images = document.getElementsByTagName("img"); 94 95 for (var i = 0; i < images.length; i++) { 96 97 images[i].onmouseover = showAnswer; 98 99 images[i].onmouseout = reblur; 100 101 } 102 103 }; 104 105 function showAnswer(eventObj) { 106 107 var image = eventObj.target; 108 109 var name = image.id; 110 111 name = name + ".jpg"; 112 113 image.src = name; 114 115 } 116 117 118 119 function reblur(eventObj) { 120 121 var image = eventObj.target; 122 123 var name = image.id; 124 125 name = name + "blur.jpg"; 126 127 image.src = name; 128 129 } 130 131 */ 132 133 </script> 134 135 </head> 136 137 <body> 138 139 <img id="zero" src="zeroblur.jpg" /> 140 141 <img id="one" src="oneblur.jpg" /> 142 143 <img id="two" src="twoblur.jpg" /> 144 145 <img id="three" src="threeblur.jpg" /> 146 147 <img id="four" src="fourblur.jpg" /> 148 149 <img id="five" src="fiveblur.jpg" /> 150 151 </body> 152 153 </html>

程序2 鼠標位置

 1 <!doctype html>
 2 
 3 <html lang="en">
 4 
 5 <head>
 6 
 7   <meta charset="utf-8">
 8 
 9   <title>Pirates Booty</title>
10 
11   <script>
12 
13 window.onload = init;
14 
15 function init() {
16 
17 var map = document.getElementById("map");
18 
19 map.onmousemove = showCoords;
20 
21 }
22 
23  
24 
25 function showCoords(eventObj) {
26 
27 var coords = document.getElementById("coords");
28 
29 var x = eventObj.clientX;//獲取位置
30 
31 var y = eventObj.clientY;
32 
33 coords.innerHTML = "Map coordinates: " + x + ", " + y;//修改
34 
35 }
36 
37   </script>
38 
39 </head>
40 
41 <body>
42 
43 <img id="map" src="map.jpg">
44 
45 <p id="coords">Move mouse over map to find coordinates...</p>
46 
47 </body>
48 
49 </html>

3 事件群英譜

click:單擊觸發

load:加載完網頁觸發

unload:關閉或切換到其他網頁觸發

mousemove:在元素上移動鼠標觸發

mouseover:鼠標移至元素上觸發

mouseout:鼠標移開元素觸發

keypress:按下任何鍵觸發

resize:調整瀏覽器窗口大小觸發

play:單擊<video>元素播放按鈕觸發

pause:單擊<video>元素暫停按鈕觸發

dragstart:用戶拖曳網頁元素時觸發

drop:放下拖曳元素觸發

touchstart:觸摸設備,觸摸並按住元素觸發

touchend:停止觸摸觸發;

JavaScript學習筆記(六)—— 異步編碼