JS中的觸控事件

2021-09-19 10:25:15 字數 2471 閱讀 8155

觸控事件與滑鼠事件相比有兩個不同點:

1)滑鼠游標只有乙個,而觸控點可能有很多;

2)滑鼠游標可以懸停,而觸控點則不行。

事件型別

是否可以取消

是否走完整個冒泡式出發過程

描述瀏覽器對該事件的預設處理方式

touchstart是是

使用者將某個觸控點置於觸控介面之上

未定義touchmove是是

使用者在觸控介面上移動觸控點

未定義touchend是是

觸控點離開了觸控區域

根據具體情況而定,可以將其視為:mousemove、mousedown、mouseup、click

touchcancel是是

觸控點的觸控動作被打斷,或是觸控點個數超出了裝置所能處理的範圍

未定義

element.

ontouchstart

=function

(e)

element.

addeventlistener

("touchstart"

,function

(e))

瀏覽器傳遞給觸控事件***的事件物件之中包含各種屬性,見下表。

大部分情況下,只使用touches和changedtouches屬性就夠了。這兩個屬性值得型別都是touchlist,該型別是乙個由touch物件組成的列表。

屬性名

屬性值得資料型別

描述touches

touchlist

由於介面上觸控的各個觸控點所組成的列表

changedtouches

touchlist

與上次觸控事件相比,發生改變的各個觸控點。對於touchstart事件來說,它表示那些剛剛被啟用的觸控點;對於touchmove事件來說,表示那些位置發生了移動的觸控點;對於touchend與touchcancel事件來說,則表示那些不再停留於觸控介面之上的觸控點

targettouches

touchlist

正在介面上觸控且位於當前元素範圍之內的那些觸控點。除非某個觸控點被拖到了元素範圍之外,否則該列表就等同於touches列表

altkey、ctrlkey、metakey、shiftkey

boolean

如果在觸控事件發生時,與之對應的按鍵(alt、ctrl、meta或shift處於被按下的狀態,那麼其值就是true。由於某些移動裝置並沒有物理鍵盤,所以這些屬性的值可能是不確定的)

touchlist有兩個屬性

1)length

2)touch identifiedtouch(identfier)

給定某個touchlist物件,我們可以通過length屬性獲取列表中所包含touch物件的個數。其**如下:

element.

ontouchstart

=function

(e)

我們可以像運算元組那樣,訪問touchlist之中的每乙個touch元素;

element.

ontouchstart

=function

(e)}

每個touch物件都有乙個獨特的識別符號,如果touchlist其存在有特定識別符號的touch物件,那麼identifiedtouch()方法就返回它。當你想要了解某乙個觸控點是否參與了對個觸控事件時,該方法是很有用的。

觸控事件***最終還是需要檢查touch物件本身的屬性。下表列出了touch物件的各個屬性。

屬性名

屬性值得資料型別

描述clientx

long

觸控點相對於視窗的x座標。該值不將滾動條的高度計算在內。

clienty

long

觸控點相對於視窗的y座標。該值不將滾動條的高度計算在內。

identifier

long

代表觸控點身份的獨特識別符號,同乙個觸控點的身份識別符號在不同事件物件中保持不變

pagex

long

觸控點相對於視窗的x座標。該值會將滾動條的寬度計算在內

pagey

long

觸控點相對於視窗y的座標。該值會將滾動條的高度計算在內

screenx

long

觸控點相對於與螢幕的x座標

screeny

long

觸控點相對於與螢幕的y座標

target

eventtarget

觸控動作開始時,觸控點所在的元素。就算該點其後被拖出了初始元素,target依然會指向一開始的那個元素

js 觸控事件

var jc 0 document.addeventlistener touchstart function event false document.addeventlistener touchmove function event false document.addeventlistener ...

JS 觸控事件 手勢事件

隨著觸屏移動端裝置的普及使用,w3c開始制定touchevent規範。除了常用的dom屬性,觸控事件還包含下列三個用於跟蹤觸控的屬性。觸控事件與手勢事件之間的關係 1 當乙個手指放在螢幕上時,會觸發touchstart事件,如果另乙個手指又放在了螢幕上,則會觸發gesturestart事件,隨後觸發...

手機觸控螢幕的JS事件

處理touch事件能讓你跟蹤使用者的每一根手指的位置。你可以繫結以下四種touch事件 一 touchstart 手指放到螢幕上的時候觸發 touchmove 手指在螢幕上移動的時候觸發 touchend 手指從螢幕上拿起的時候觸發 touchcancel 系統取消touch事件的時候觸發。至於系統...