国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

觸屏中的JavaScript事件分析

2019-11-20 13:12:38
字體:
來源:轉載
供稿:網友

本文實例講述了觸屏中的JavaScript事件。分享給大家供大家參考。具體分析如下:

一、觸摸事件

ontouchstart
ontouchmove
ontouchend
ontouchcancel目前移動端瀏覽器均支持這4個觸摸事件,包括IE。由于觸屏也支持MouseEvent,因此他們的順序是需要注意的:touchstart → mouseover → mousemove → mousedown → mouseup → click1

實例如下:

/*** onTouchEvent*/var div = document.getElementById("div");//touchstart類似mousedowndiv.ontouchstart = function(e){//事件的touches屬性是一個數組,其中一個元素代表同一時刻的一個觸控點,//從而可以通過touches獲取多點觸控的每個觸控點//由于我們只有一點觸控,所以直接指向[0]var touch = e.touches[0];//獲取當前觸控點的坐標,等同于MouseEvent事件的clientX/clientYvar x = touch.clientX;var y = touch.clientY;};//touchmove類似mousemovediv.ontouchmove = function(e){//可為touchstart、touchmove事件加上preventDefault從而阻止觸摸時,//瀏覽器的縮放、滾動條滾動等e.preventDefault();};//touchend類似mouseupdiv.ontouchup = function(e){//nothing to do};

二、手勢事件手勢是指利用多點觸控進行旋轉、拉伸等操作,例如圖片、網頁的放大、旋轉。需要兩個或以上的手指同時觸摸時才會觸發手勢事件。關于縮放我們需要注意的一點是元素的位置坐標:我們通常使用offsetX、getBoundingClientRect等方法獲取元素的位置坐標,但在手機瀏覽器中頁面經常會在使用中被縮放,那縮放后的元素坐標會改變嗎?答案是有所差異。用一個情景來說明這個問題:頁面A加載完成后,JavaScript獲取到該元素在document中的坐標為(100,100),接著用戶放大了頁面,此時用JavaScript再次輸出元素坐標,依然還是(100,100),但該元素在屏幕上的響應區域會根據縮放比例產生偏移。你可以打開那個打磚塊游戲demo,等頁面完全加載完成后,再放大,此時你會發現即使手指觸摸在“touch here”區域外部,也可以控制到球板,因為區域發生了偏移。除非頁面刷新或者恢復縮放,否則偏移量將一直存在。

/*** onGestureEvent*/var div = document.getElementById("div");div.ongesturechange = function(e){//scale代表手勢產生的縮放比例,小于1是縮小,大于1是放大,原始為1var scale = e.scale;//rotation代表旋轉手勢的角度,值區間[0,360],正值順時針旋轉,負值逆時針var angle = e.rotation;};

三、重力感應重力感應較簡單,只需要為body節點添加onorientationchange事件即可。在此事件中由window.orientation屬性得到代表當前手機方向的數值。window.orientation的值列表如下:

0:與頁面首次加載時的方向一致
-90:相對原始方向順時針轉了90°
180:轉了180°
90:逆時針轉了90°據我測試,Android2.1尚未支持重力感應。以上即目前的觸屏事件,這些事件尚未并入標準,但已被廣泛使用。本人Android2.1,未在其他環境下測試。

PS:這里再為大家提供一個關于JS事件的在線工具,歸納總結了JS常用的事件類型與函數功能:

javascript事件與功能說明大全:

http://tools.VeVB.COm/table/javascript_event

希望本文所述對大家的javascript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阿克陶县| 庆元县| 兴城市| 阿拉善右旗| 东台市| 扶绥县| 色达县| 陇南市| 桃源县| 茌平县| 贞丰县| 辛集市| 正蓝旗| 高阳县| 通河县| 布尔津县| 伊宁县| 连平县| 锡林浩特市| 二连浩特市| 阿克苏市| 水城县| 南京市| 台前县| 绥阳县| 枝江市| 九寨沟县| 资中县| 越西县| 长岛县| 东兰县| 伊宁市| 镇康县| 拉萨市| 乌兰县| 万源市| 明溪县| 三江| 来凤县| 桐城市| 南宫市|