JavaScript 常見移動端網頁特效
阿新 • • 發佈:2020-10-22
1. 觸屏事件
1.1 觸屏事件概述
- 移動端瀏覽器相容性較好,不需要考慮 JS 的相容性問題。但是移動端也有自己獨特的地方,比如觸屏事件
touch
(觸控事件),Android 和 IOS 都有 touch
物件代表一個觸控點,觸控點可能是一根手指,也可能是一根觸控筆- 觸屏事件可響應使用者手指(或觸控筆)對螢幕或者觸控板操作
常見的觸屏事件:
1.2 觸控事件物件(TouchEvent)
TouchEvent
是一類描述手指在觸控平面(觸控式螢幕、觸控板等)的狀態變化的事件。這類事件用於描述一個或多個觸點,使開發者可以檢測觸點的移動,觸點的增加和減少,等等。
touchstart
、touchmove
touchend
三個事件都會各自有事件物件。
三個常見物件列表:
1.3 移動端拖動元素
touchstart
、touchmove
、touchend
可以實現拖動元素- 但是拖動元素需要當前手指的座標值,可以使用
targetTouches[0]
裡面的pageX
和pageY
- 移動端拖動的原理:手指移動中,計算出手指移動的距離。然後用盒子原來的位置 + 手指移動的距離
- 手指移動的距離:手指滑動中的位置 - 手指剛開始觸控的位置
拖動元素三步曲:
- 觸控元素
touchstart
: 獲取手指初始座標,同時獲得盒子原來的位置 - 移動手指
touchmove
: 計算手指的滑動距離,並且移動盒子 - 離開手指
touchend
注意: 手指移動也會觸發滾動螢幕,所以要阻止預設的螢幕滾動e.preventDefault();