移動端 touch事件
當前移動裝置,絕大多數沒有滑鼠或者鍵盤,即便有鍵盤,也是通過點選文字框等輸入域彈出的虛擬鍵盤。
所以絕大多數用於PC端的事件在移動端不再有效,或者不再是最佳選擇。
例如click事件就不推薦在移動端使用,具體參閱touch事件與click事件區別一章節。
一.移動端觸屏事件:
下面列舉一下得到瀏覽器廣泛支援和應用的觸屏事件:
(1).touchstart事件:當在螢幕上按下手指時觸發。
(2).touchmove事件:當在螢幕上連續的滑動手指時觸發。
(3).touchend事件:當手指在螢幕上抬起,或者滑出螢幕時觸發。
二.註冊事件處理函式:
與PC端註冊事件處理函式完全一樣,具體參閱JavaScript 註冊事件處理函式一章節。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" /> <style> #ant { width: 100%; height: 300px; text-align:center; line-height:300px; background-color:green; } </style> <script> window.onload = function () { let odiv = document.getElementById("ant"); odiv.addEventListener("touchstart", showMsg); function showMsg() { odiv.innerHTML = "螞蟻部落"; } } </script> </head> <body> <div id="ant">點選螢幕檢視資料</div> </body> </html>
在谷歌開發者工具,移動端模擬介面,進行觸屏操作可以觸發touchstart事件。
三.事件物件:
與PC端相同,當事件觸發的時候,可以為事件處理函式傳遞事件物件。
程式碼例項如下:
[HTML] 純文字檢視 複製程式碼執行程式碼<!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no" /> <style> #ant { width: 100%; height: 300px; text-align:center; line-height:300px; background-color:green; } </style> <script> window.onload = function () { let odiv = document.getElementById("ant"); odiv.addEventListener("touchstart", showMsg); function showMsg(ev) { odiv.innerHTML = ev.type; } } </script> </head> <body> <div id="ant">點選螢幕檢視資料</div> </body> </html>
為時間處理函式傳遞事件物件ev,然後在div中寫入當前事件型別。
事件物件中包含與當前觸發事件相關的資訊,可以通過以下程式碼在控制檯列印觀察:
[JavaScript] 純文字檢視 複製程式碼window.onload = function () { let odiv = document.getElementById("ant"); odiv.addEventListener("touchstart", showMsg); function showMsg(ev) { console.log(ev); } }
移動端事件物件內容與PC端事件物件內容很多重複,含義也基本一致,不多做介紹。
幾個特別重要屬性的使用可以參閱touches、targetTouches與changedTouches一章節。
相關文章
- 移動端touch事件事件
- 原生 js 實現移動端 Touch 滑動反彈JS
- 移動端點透事件--阻止滾動事件事件
- 手機端html5觸屏事件(touch事件)HTML事件
- JavaScript實戰專案:移動端 Touch 輪播圖JavaScript
- 移動端事件touchstart、touchmove、touchend詳解事件
- touch事件與click事件區別事件
- Vue 引用阿里小圖示 移動端rem佈局 v-touch使用Vue阿里REM
- 移動端事件穿透的原理與解決方案事件穿透
- 移動端h5模擬長按事件H5事件
- touch事件和click事件多次觸發的問題事件
- 移動端點選事件延遲的誕生消亡史事件
- vue:移動端判斷鍵盤事件,相容安卓iosVue事件安卓iOS
- iOS GestureRecognizer與UIResponder touch事件響應iOSUI事件
- Flutter——原生View的Touch事件分發流程FlutterView事件
- 移動端定位
- Lesktop開源IM移動端:接入LayIM移動端UIUI
- vue移動端專案接入vconsole(移動端除錯)Vue除錯
- 移動端VUE點選、滑動和長按等事件處理(自定義指令)Vue事件
- 【移動端開發】移動端開發基礎問題
- HTML5觸控事件實現移動端簡易進度條HTML事件
- 移動端適配
- 移動端UI框架UI框架
- 移動端佈局
- 移動端彈窗
- 移動端規則
- 移動端模擬滾動
- charles抓取web端移動端httpsWebHTTP
- js實現簡易的touch事件(es5)JS事件
- viewport移動端適配View
- 移動端flex佈局Flex
- 移動端使用rem原理REM
- 移動端開發技巧
- rem移動端適配REM
- vw移動端適配
- 移動端步驟1
- Web移動端佈局Web
- 移動端問題整理