91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HTML5移動端開發的常用觸摸事件有哪些

發布時間:2021-09-15 15:36:33 來源:億速云 閱讀:111 作者:柒染 欄目:web開發

HTML5移動端開發的常用觸摸事件有哪些,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

HTML5中新添加了很多事件,但是由于他們的兼容問題不是很理想,應用實戰性不是太強,所以在這里基本省略,咱們只分享應用廣泛兼容不錯的事件,日后隨著兼容情況提升以后再陸續添加分享。今天為大家介紹的事件主要是觸摸事件:touchstart、touchmove和touchend。

  一開始觸摸事件touchstart、touchmove和touchend是iOs版Safari瀏覽器為了向開發人員傳達一些信息新添加的事件。因為iOs設備既沒有鼠標也沒有鍵盤,所以在為移動Safari瀏覽器開發交互性網頁的時候,PC端的鼠標和鍵盤事件是不夠用的。

  在iPhone 3Gs發布的時候,其自帶的移動Safari瀏覽器就提供了一些與觸摸(touch)操作相關的新事件。隨后,Android上的瀏覽器也實現了相同的事件。觸摸事件(touch)會在用戶手指放在屏幕上面的時候、在屏幕上滑動的時候或者是從屏幕上移開的時候出發。下面具體說明:

  touchstart事件:當手指觸摸屏幕時候觸發,即使已經有一個手指放在屏幕上也會觸發。

  touchmove事件:當手指在屏幕上滑動的時候連續地觸發。在這個事件發生期間,調用preventDefault()事件可以阻止滾動。

  touchend事件:當手指從屏幕上離開的時候觸發。

  touchcancel事件:當系統停止跟蹤觸摸的時候觸發。關于這個事件的確切出發時間,文檔中并沒有具體說明,咱們只能去猜測了。

  上面的這些事件都會冒泡,也都可以取消。雖然這些觸摸事件沒有在DOM規范中定義,但是它們卻是以兼容DOM的方式實現的。所以,每個觸摸事件的event對象都提供了在鼠標實踐中常見的屬性:bubbles(起泡事件的類型)、cancelable(是否用 preventDefault() 方法可以取消與事件關聯的默認動作)、clientX(返回當事件被觸發時,鼠標指針的水平坐標)、clientY(返回當事件觸發時,鼠標指針的垂直坐標)、screenX(當某個事件被觸發時,鼠標指針的水平坐標)和screenY(返回當某個事件被觸發時,鼠標指針的垂直坐標)。除了常見的DOM屬性,觸摸事件還包含下面三個用于跟蹤觸摸的屬性。

  touches:表示當前跟蹤的觸摸操作的touch對象的數組。

  targetTouches:特定于事件目標的Touch對象的數組。

  changeTouches:表示自上次觸摸以來發生了什么改變的Touch對象的數組。

每個Touch對象包含的屬性如下。

  clientX:觸摸目標在視口中的x坐標。

  clientY:觸摸目標在視口中的y坐標。

  identifier:標識觸摸的唯一ID。

  pageX:觸摸目標在頁面中的x坐標。

  pageY:觸摸目標在頁面中的y坐標。

  screenX:觸摸目標在屏幕中的x坐標。

  screenY:觸摸目標在屏幕中的y坐標。

  target:觸目的DOM節點目標。

每個觸摸點由包含了如下觸摸信息(常用):

identifier:一個數值,唯一標識觸摸會話(touch session)中的當前手指。一般為從0開始的流水號(android4.1,uc)

target:DOM元素,是動作所針對的目標。

pageX/pageX/clientX/clientY/screenX/screenY:一個數值,動作在屏幕上發生的位置(page包含滾動距離,client不包含滾動距離,screen則以屏幕為基準)。 

radiusX/radiusY/rotationAngle:畫出大約相當于手指形狀的橢圓形,分別為橢圓形的兩個半徑和旋轉角度。初步測試瀏覽器不支持,好在功能不常用,歡迎大家反饋。

JavaScript操作小例子:

JavaScript Code復制內容到剪貼板

  1. var obj = document.getElementByIdx_x('id');   
    obj.addEventListener('touchmove', function(event) {   
         // 如果這個元素的位置內只有一個手指的話   
        if (event.targetTouches.length == 1) {   
         event.preventDefault();// 阻止瀏覽器默認事件,重要    
            var touch = event.targetTouches[0];   
            // 把元素放在手指所在的位置   
            obj.style.left = touch.pageX-50 + 'px';   
            obj.style.top = touch.pageY-50 + 'px';   
            }   
    }, false);

看完上述內容,你們掌握HTML5移動端開發的常用觸摸事件有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武隆县| 台州市| 永胜县| 抚顺市| 南丹县| 张北县| 岐山县| 龙胜| 桑日县| 乐山市| 庆元县| 乡宁县| 双峰县| 休宁县| 临沭县| 甘肃省| 桐柏县| 丹棱县| 宁陕县| 南部县| 田东县| 瑞丽市| 平遥县| 喀喇沁旗| 潢川县| 白河县| 黄骅市| 锡林浩特市| 高阳县| 和田市| 安塞县| 达孜县| 米易县| 繁昌县| 双城市| 石景山区| 普陀区| 托克逊县| 泸州市| 建阳市| 盐源县|