摘要:對(duì)象不包含任何信息事件事件,該事件已被移除,應(yīng)該使用事件但是事件仍然是實(shí)驗(yàn)性的事件,目前有部分瀏覽器暫時(shí)不支持。每個(gè)觸摸事件的對(duì)象都提供了在鼠標(biāo)事件中常見的屬性。
設(shè)備事件 orientationchange事件
該事件的window.orientation屬性中包含3個(gè)值:0表示肖像模式、90表示左旋轉(zhuǎn)的橫向模式、-90表示右旋轉(zhuǎn)的橫向模式。event對(duì)象不包含任何信息:
window.onload = function () { var div = document.getElementById("info"); div.innerHTML = "Current orientation is " + window.orientation; }; window.addEventListener("orientationchange", function () { div.innerHTML = "Current orientation is " + window.orientation; });deviceorientationevent事件
MozOrientation事件,該事件已被移除,應(yīng)該使用DeviceOrientationEvent事件
Warning: This experimental API was removed in Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3), when support for the standard DeviceOrientationEvent was implemented. You should use that API instead.
但是DeviceOrientationEvent事件仍然是實(shí)驗(yàn)性的事件,目前有部分瀏覽器暫時(shí)不支持。
該事件的意圖是告訴開發(fā)者設(shè)備在空間中朝向哪兒,設(shè)備在三維空間中是靠x、y、z軸來定位的。
事件對(duì)象包含:
alpha:圍繞z軸旋轉(zhuǎn),y軸的度數(shù)差;0~360的值;
beta:圍繞x軸旋轉(zhuǎn),z軸的度數(shù)差;-180~180的值;
gamma:圍繞y軸旋轉(zhuǎn),z軸的度數(shù)差;-90~90的值;
absolute:表示設(shè)備是否返回一個(gè)絕對(duì)值;
compassCalibrated:表示設(shè)備的指南針是否校準(zhǔn)過;
如:
devicemotion事件丄window.addEventListener("deviceorientation", function () { var info = document.getElementById("info"); info.style.webkitTransform = "rotate(" + -Math.round(event.alpha) + "deg)"; });
該事件是要告訴開發(fā)者設(shè)備什么時(shí)候移動(dòng),如通過該事件檢測(cè)設(shè)備是否在往下掉,是否被走著的人拿在手里等等。
屬性:
acceleration:包含x、y、z屬性的對(duì)象,不考慮重力的情況下,每個(gè)方向的加速度;
accelerationIncludingGravity:包含x、y、z屬性的對(duì)象,在考慮z自然重力加速度的情況下,每個(gè)方向上的加速度;
interval:毫秒值,必須在另一個(gè)devicemotion事件觸發(fā)前傳入;
rotationRate:包含表示方向的alpha、beta和gamma屬性的對(duì)象;
如果讀取不到值,會(huì)返回null,所以應(yīng)該先檢測(cè)它們的值是否為null:
window.addEventListener("devicemotion", function () { if (event.rotationRate !== null) { // statement } });觸摸與手勢(shì)事件 觸摸事件 兼容DOM的觸摸事件
touchstart:觸摸屏幕時(shí)觸發(fā);
touchmove:滑動(dòng)時(shí)觸發(fā),調(diào)用preventDefault()函數(shù)可阻止?jié)L動(dòng);
touchend:當(dāng)手指從屏幕上移開時(shí)觸發(fā);
touchcancel:當(dāng)系統(tǒng)停止跟蹤觸摸時(shí)觸發(fā);
上面的事件都會(huì)冒泡,都可以取消。每個(gè)觸摸事件的event對(duì)象都提供了在鼠標(biāo)事件中常見的屬性。
跟蹤觸摸的事件touches:表示當(dāng)前跟蹤的觸摸操作的Touch對(duì)象的數(shù)組;
targetTouches:特定于事件目標(biāo)的Touch對(duì)象的數(shù)組;
changedTouches:表示自上次觸摸以來發(fā)生了什么改變的Touch對(duì)象的數(shù)組;
每個(gè)Touch對(duì)象包含的屬性:
clientX:視口中的x坐標(biāo);
clientY:;
identifier:標(biāo)識(shí)觸摸的唯一ID;
pageX:觸摸目標(biāo)在頁(yè)面中的x坐標(biāo);
pageY:;
screenX:觸摸目標(biāo)在屏幕中的x坐標(biāo);
screenY:;
target:觸摸DOM節(jié)點(diǎn)目標(biāo);
如:
function handleTouchEvent () { if (event.touches.length == 1) { var output = document.getElementById("output"); switch (event.type) { case "touchstart": output.innerHTML = "Touch started (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")"; break; case "touchmove": event.preventDefault(); output.innerHTML = "Touch moved (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")"; break; case "touchend": output.innerHTML = "Touch ended (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")"; break; } } } window.addEventListener("touchstart", handleTouchEvent); window.addEventListener("touchmove", handleTouchEvent); window.addEventListener("touchend", handleTouchEvent);
暫時(shí)不清楚為什么touchend無反應(yīng)。
手勢(shì)事件gesturestart:當(dāng)一個(gè)手指已經(jīng)按在屏幕上而另一個(gè)手指又觸摸屏幕時(shí)觸發(fā);
gesturechange:當(dāng)觸摸屏幕的任何一個(gè)手指的位置發(fā)生變化時(shí)觸發(fā);
gestureend:當(dāng)任何一個(gè)手指從屏幕上面移開時(shí)觸發(fā);
其中event還包括除鼠標(biāo)事件的屬性之外另外兩個(gè)屬性:rotation和scale:其中rotation屬性表示旋轉(zhuǎn)的角度,從0開始,負(fù)值表示逆時(shí)針旋轉(zhuǎn),正值表示順時(shí)針旋轉(zhuǎn);scale屬性從1開始,隨著距離拉大而增加,隨著距離縮小而減小:
var output = document.getElementById("output"); document.addEventListener("gesturestart", function () { output.innerHTML = "rotation: " + event.rotation + ";" + "scale: " + event.scale; }); document.addEventListener("gestureend", function () { output.innerHTML = "rotation: " + event.rotation + ";" + "scale: " + event.scale; }); document.addEventListener("gesturechange", function () { event.preventDefault(); output.innerHTML = "rotation: " + event.rotation + ";" + "scale: " + event.scale; });
寫成:
function handleGestureEvent() { var output = document.getElementById("output"); switch (event.type) { case "gesturestart": output.innerHTML = "rotation: " + event.rotation + ";" + "scale: " + event.scale; break; case "gestureend": output.innerHTML = "rotation: " + event.rotation + ";" + "scale: " + event.scale; break; case "gesturechange": event.preventDefault(); output.innerHTML = "rotation: " + event.rotation + ";" + "scale: " + event.scale; break; } } document.addEventListener("gesturestart", handleGestureEvent); document.addEventListener("gestureend", handleGestureEvent); document.addEventListener("gesturechange", handleGestureEvent);
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/91605.html
摘要:所有節(jié)點(diǎn)中都包含這兩個(gè)方法,并且它們都接受個(gè)參數(shù)要處理的事件名,作為事件處理程序的函數(shù)和一個(gè)布爾值。和支持這個(gè)事件。 事件 事件流 事件流描述的是從頁(yè)面中接收事件的順序 事件冒泡 IE的事件流叫做事件冒泡,即事件開始時(shí)由最具體的元素(文檔中嵌套層次最深的那個(gè)節(jié)點(diǎn))接收,然后逐級(jí)向上傳播到較為不具體的節(jié)點(diǎn)showImg(https://segmentfault.com/img/bVbg5...
摘要:事件捕獲團(tuán)隊(duì)提出的,與事件冒泡相反。事件處理程序事件用戶或?yàn)g覽器自身執(zhí)行的某種動(dòng)作。事件處理程序響應(yīng)某個(gè)事件的函數(shù)。事件委托目的解決事件處理程序過多問題。流程創(chuàng)建事件對(duì)象初始化事件對(duì)象觸發(fā)事件 事件是將JavaScript與網(wǎng)頁(yè)聯(lián)系在一起的主要方式。 事件流 事件流:從頁(yè)面中接收到事件的順序。 事件冒泡 IE的事件流叫做事件冒泡:事件開始時(shí)由最具體 的元素(文檔中嵌套層次最深的那個(gè)節(jié)點(diǎn)...
摘要:常見內(nèi)存泄漏情形全局變量被忘記的或者閉包引用閉包概念有權(quán)訪問另一個(gè)函數(shù)作用域的變量的函數(shù)。會(huì)話存儲(chǔ)刷新頁(yè)面依舊存在,與在持久上不同外,其余一致。請(qǐng)求向指定的資源提交被處理的數(shù)據(jù),數(shù)據(jù)量和類型沒限制,不主動(dòng)緩存,頁(yè)面刷新數(shù)據(jù)會(huì)被重新提交。 defer 腳本延遲執(zhí)行,適用于外部腳本文件async 立即下載,不保證順序(建議不修改DOM,避免重繪) CDN加速 (Content De...
摘要:事件這個(gè)事件在文檔被完全卸載后觸發(fā)。事件當(dāng)瀏覽器窗口被調(diào)整到一個(gè)新的高度或?qū)挾?,就?huì)觸發(fā)該事件。事件該事件雖然在對(duì)象上發(fā)生的,但實(shí)際表示的是頁(yè)面中響應(yīng)元素的變化。事件關(guān)于等事件以后再討論事件關(guān)于等事件以后再討論事件關(guān)于等事件以后再討論 DOM3級(jí)事件規(guī)定了一下幾類事件 UI事件,當(dāng)用戶與頁(yè)面上的元素交互時(shí)除法; 焦點(diǎn)事件,元素獲得或失去焦點(diǎn); 鼠標(biāo)事件,通過鼠標(biāo)在頁(yè)面上執(zhí)行操作; 滾...
DOM中的事件模擬 三個(gè)步驟: 首先通過document.createEvent()方法創(chuàng)建event對(duì)象,接收一個(gè)參數(shù),即表示要?jiǎng)?chuàng)建的事件類型的字符串: UIEvents(DOM3中的UIEvent)鼠標(biāo)和鍵盤事件; MouseEvents(DOM3中的MouseEvent)鼠標(biāo)事件; MutationEvents(DOM3中的MutationEvent)變動(dòng)事件; HTMLEvents(沒有...
閱讀 2322·2021-11-22 09:34
閱讀 2192·2021-09-22 15:22
閱讀 2087·2019-08-29 15:05
閱讀 2180·2019-08-26 10:43
閱讀 3465·2019-08-26 10:26
閱讀 1051·2019-08-23 18:29
閱讀 3626·2019-08-23 16:42
閱讀 2059·2019-08-23 14:46