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

首頁 > 編程 > HTML > 正文

整理HTML5移動端開發(fā)的常用觸摸事件

2020-03-24 18:46:09
字體:
供稿:網(wǎng)友
HTML5中新添加了很多事件,但是由于他們的兼容問題不是很理想,應(yīng)用實戰(zhàn)性不是太強,所以在這里基本省略,咱們只分享應(yīng)用廣泛兼容不錯的事件,日后隨著兼容情況提升以后再陸續(xù)添加分享。今天為大家介紹的事件主要是觸摸事件:touchstart、touchmove和touchend。 一開始觸摸事件touchstart、touchmove和touchend是iOs版Safari瀏覽器為了向開發(fā)人員傳達一些信息新添加的事件。因為iOs設(shè)備既沒有鼠標也沒有鍵盤,所以在為移動Safari瀏覽器開發(fā)交互性網(wǎng)頁的時候,PC端的鼠標和鍵盤事件是不夠用的。 在iPhone 3Gs發(fā)布的時候,其自帶的移動Safari瀏覽器就提供了一些與觸摸(touch)操作相關(guān)的新事件。隨后,Android上的瀏覽器也實現(xiàn)了相同的事件。觸摸事件(touch)會在用戶手指放在屏幕上面的時候、在屏幕上滑動的時候或者是從屏幕上移開的時候出發(fā)。下面具體說明: touchstart事件:當(dāng)手指觸摸屏幕時候觸發(fā),即使已經(jīng)有一個手指放在屏幕上也會觸發(fā)。 touchmove事件:當(dāng)手指在屏幕上滑動的時候連續(xù)地觸發(fā)。在這個事件發(fā)生期間,調(diào)用preventDefault()事件可以阻止?jié)L動。 touchend事件:當(dāng)手指從屏幕上離開的時候觸發(fā)。 touchcancel事件:當(dāng)系統(tǒng)停止跟蹤觸摸的時候觸發(fā)。關(guān)于這個事件的確切出發(fā)時間,文檔中并沒有具體說明,咱們只能去猜測了。 上面的這些事件都會冒泡,也都可以取消。雖然這些觸摸事件沒有在DOM規(guī)范中定義,但是它們卻是以兼容DOM的方式實現(xiàn)的。所以,每個觸摸事件的event對象都提供了在鼠標實踐中常見的屬性:bubbles(起泡事件的類型)、cancelable(是否用 preventDefault() 方法可以取消與事件關(guān)聯(lián)的默認動作)、clientX(返回當(dāng)事件被觸發(fā)時,鼠標指針的水平坐標)、clientY(返回當(dāng)事件觸發(fā)時,鼠標指針的垂直坐標)、screenX(當(dāng)某個事件被觸發(fā)時,鼠標指針的水平坐標)和screenY(返回當(dāng)某個事件被觸發(fā)時,鼠標指針的垂直坐標)。除了常見的DOM屬性,觸摸事件還包含下面三個用于跟蹤觸摸的屬性。
touches:表示當(dāng)前跟蹤的觸摸操作的touch對象的數(shù)組。 targetTouches:特定于事件目標的Touch對象的數(shù)組。 changeTouches:表示自上次觸摸以來發(fā)生了什么改變的Touch對象的數(shù)組。
每個Touch對象包含的屬性如下。 clientX:觸摸目標在視口中的x坐標。 clientY:觸摸目標在視口中的y坐標。 identifier:標識觸摸的唯一ID。 pageX:觸摸目標在頁面中的x坐標。 pageY:觸摸目標在頁面中的y坐標。 screenX:觸摸目標在屏幕中的x坐標。 screenY:觸摸目標在屏幕中的y坐標。 target:觸目的DOM節(jié)點目標。每個觸摸點由包含了如下觸摸信息(常用):identifier:一個數(shù)值,唯一標識觸摸會話(touch session)中的當(dāng)前手指。一般為從0開始的流水號(android4.1,uc)target:DOM元素,是動作所針對的目標。pageX/pageX/clientX/clientY/screenX/screenY:一個數(shù)值,動作在屏幕上發(fā)生的位置(page包含滾動距離,client不包含滾動距離,screen則以屏幕為基準)。 radiusX/radiusY/rotationAngle:畫出大約相當(dāng)于手指形狀的橢圓形,分別為橢圓形的兩個半徑和旋轉(zhuǎn)角度。初步測試瀏覽器不支持,好在功能不常用,歡迎大家反饋。JavaScript操作小例子:
JavaScript Code復(fù)制內(nèi)容到剪貼板
varobj=document.getElementByIdx_x('id'); obj.addEventListener('touchmove',function(event){ //如果這個元素的位置內(nèi)只有一個手指的話 if(event.targetTouches.length==1){ event.preventDefault();//阻止瀏覽器默認事件,重要 vartouch=event.targetTouches[0]; //把元素放在手指所在的位置 obj.style.left=touch.pageX-50+'px'; obj.style.top=touch.pageY-50+'px'; } },false);html教程

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 嘉义市| 泉州市| 安龙县| 绥中县| 广东省| 江门市| 金华市| 铁岭市| 铜梁县| 外汇| 南涧| 印江| 铅山县| 桐梓县| 阳城县| 罗田县| 郧西县| 星子县| 临安市| 应城市| 平乡县| 汝城县| 承德市| 利川市| 阜宁县| 宜丰县| 丰都县| 麻江县| 忻城县| 台中县| 岫岩| 石泉县| 迭部县| 武隆县| 盘山县| 饶平县| 碌曲县| 莱州市| 绥德县| 阳高县| 开原市|