觸屏中的JavaScript事件分析
本文實例講述了觸屏中的JavaScript事件。分享給大家供大家參考。具體分析如下:
一、觸摸事件
ontouchstart
ontouchmove
ontouchend
ontouchcancel目前移動端瀏覽器均支持這4個觸摸事件,包括IE。由于觸屏也支持MouseEvent,因此他們的順序是需要注意的:touchstart → mouseover → mousemove → mousedown → mouseup → click1
實例如下:
/**
* onTouchEvent
*/
var div = document.getElementById("div");
//touchstart類似mousedown
div.ontouchstart = function(e){
//事件的touches屬性是一個數(shù)組,其中一個元素代表同一時刻的一個觸控點,
//從而可以通過touches獲取多點觸控的每個觸控點
//由于我們只有一點觸控,所以直接指向[0]
var touch = e.touches[0];
//獲取當前觸控點的坐標,等同于MouseEvent事件的clientX/clientY
var x = touch.clientX;
var y = touch.clientY;
};
//touchmove類似mousemove
div.ontouchmove = function(e){
//可為touchstart、touchmove事件加上preventDefault從而阻止觸摸時,
//瀏覽器的縮放、滾動條滾動等
e.preventDefault();
};
//touchend類似mouseup
div.ontouchup = function(e){
//nothing to do
};
二、手勢事件手勢是指利用多點觸控進行旋轉、拉伸等操作,例如圖片、網(wǎng)頁的放大、旋轉。需要兩個或以上的手指同時觸摸時才會觸發(fā)手勢事件。關于縮放我們需要注意的一點是元素的位置坐標:我們通常使用offsetX、getBoundingClientRect等方法獲取元素的位置坐標,但在手機瀏覽器中頁面經(jīng)常會在使用中被縮放,那縮放后的元素坐標會改變嗎?答案是有所差異。用一個情景來說明這個問題:頁面A加載完成后,JavaScript獲取到該元素在document中的坐標為(100,100),接著用戶放大了頁面,此時用JavaScript再次輸出元素坐標,依然還是(100,100),但該元素在屏幕上的響應區(qū)域會根據(jù)縮放比例產(chǎn)生偏移。你可以打開那個打磚塊游戲demo,等頁面完全加載完成后,再放大,此時你會發(fā)現(xiàn)即使手指觸摸在“touch here”區(qū)域外部,也可以控制到球板,因為區(qū)域發(fā)生了偏移。除非頁面刷新或者恢復縮放,否則偏移量將一直存在。
/**
* onGestureEvent
*/
var div = document.getElementById("div");
div.ongesturechange = function(e){
//scale代表手勢產(chǎn)生的縮放比例,小于1是縮小,大于1是放大,原始為1
var scale = e.scale;
//rotation代表旋轉手勢的角度,值區(qū)間[0,360],正值順時針旋轉,負值逆時針
var angle = e.rotation;
};
三、重力感應重力感應較簡單,只需要為body節(jié)點添加onorientationchange事件即可。在此事件中由window.orientation屬性得到代表當前手機方向的數(shù)值。window.orientation的值列表如下:
0:與頁面首次加載時的方向一致
-90:相對原始方向順時針轉了90°
180:轉了180°
90:逆時針轉了90°據(jù)我測試,Android2.1尚未支持重力感應。以上即目前的觸屏事件,這些事件尚未并入標準,但已被廣泛使用。本人Android2.1,未在其他環(huán)境下測試。
PS:這里再為大家提供一個關于JS事件的在線工具,歸納總結了JS常用的事件類型與函數(shù)功能:
javascript事件與功能說明大全:
http://tools.jb51.net/table/javascript_event
希望本文所述對大家的javascript程序設計有所幫助。
相關文章
JavaScript中apply與call的用法意義及區(qū)別說明
JavaScript中有一個call和apply方法,其作用基本相同,但也有略微的區(qū)別。2010-04-04
dropdownlist之間的互相聯(lián)動實現(xiàn)(顯示與隱藏)
dropdownlist之間的互相聯(lián)動(顯示與隱藏)2009-11-11
一文詳解JavaScript的事件監(jiān)聽(最新整理)
Web頁面需要經(jīng)常和用戶之間進行交互,而交互的過程中我們可能想要捕捉這個交互的過程,比如用戶點擊了某個按鈕、用戶在輸入框里面輸入了某個文本、用戶鼠標經(jīng)過了某個位置,下面介紹下JavaScript的事件監(jiān)聽,感興趣的朋友一起看看吧2024-01-01
JQuery 前臺切換網(wǎng)站的樣式實現(xiàn)
本文說的是在WordPress中怎樣利用JQuery在網(wǎng)站的前臺切換樣式的方法?;蛘哌@篇文章的方法大家可能不是太需要,因為我覺得這是解決我被主題樣式折騰到差不多分裂的原因及結果的最后手段。2009-06-06

