亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > HTML5 > 正文

HTML5觸摸事件(touchstart、touchmove和touchend)的實現

2024-09-05 07:23:27
字體:
來源:轉載
供稿:網友

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節點目標。

上面的屬性光這么看,果然非常繁瑣,每個屬性說的都是那么的細致,只有真刀實槍的來點小例子才能更加明白其中的奧妙。所以小例子如下。

function load (){         document.addEventListener('touchstart',touch, false);     document.addEventListener('touchmove',touch, false);     document.addEventListener('touchend',touch, false);             function touch (event){         var event = event || window.event;                     var oInp = document.getElementById("inp");             switch(event.type){             case "touchstart":                 oInp.innerHTML = "Touch started (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";                 break;             case "touchend":                 oInp.innerHTML = "<br>Touch end (" + event.changedTouches[0].clientX + "," + event.changedTouches[0].clientY + ")";                 break;             case "touchmove":                 event.preventDefault();                 oInp.innerHTML = "<br>Touch moved (" + event.touches[0].clientX + "," + event.touches[0].clientY + ")";                 break;         }                 } } window.addEventListener('load',load, false);

對上面的代碼稍微做點改動,可以判斷水平方向滑動的方向,然后左相應的動作,如下:

function load(){         document.addEventListener('touchstart',touch, false);    document.addEventListener('touchmove',touch, false);    document.addEventListener('touchend',touch, false);         function touch (event){        var event = event || window.event;                     var oInp = document.getElementById("inp");        var distance,clientX_start,clientX_end,            minRange=10;            this.clientX_start;            this.direction;             this.callbackFun=function(){            if(this.direction=='ltr') {                console.log('從左往右');            }            else {                console.log('從右往左');            }            }        switch(event.type){            case "touchstart":                clientX_start=event.touches[0].clientX;                this.clientX_start=clientX_start;                break;            case "touchend":                this.callbackFun();                break;            case "touchmove":                event.preventDefault();                               clientX_end = event.changedTouches[0].clientX;                //判斷移動的方向                distance=clientX_end-this.clientX_start;                if(this.clientX_start+minRange<clientX_end) {                    this.direction='ltr';                }                else if(this.clientX_start-minRange>clientX_end){                    this.direction='rtl';                }                break;        }      }}window.addEventListener('load',load, false);

到此這篇關于HTML5觸摸事件(touchstart、touchmove和touchend)的實現的文章就介紹到這了,更多相關HTML5觸摸事件內容請搜索武林網以前的文章或繼續瀏覽下面的相關文章,希望大家以后多多支持武林網!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美野外wwwxxx| 日韩理论片久久| 欧美插天视频在线播放| 久久精品国产一区二区三区| 亚洲国产日韩欧美在线动漫| 欧美极品少妇xxxxⅹ免费视频| 日韩中文第一页| 久99久在线视频| 国产视频福利一区| 国产日韩欧美在线视频观看| 亚洲级视频在线观看免费1级| 91探花福利精品国产自产在线| 色999日韩欧美国产| 国产成人精品日本亚洲专区61| 欧美日韩一区二区三区| 国产精品自产拍在线观看| 国产精品18久久久久久首页狼| 亚洲天堂av高清| 亚洲色图日韩av| 亚洲天堂av图片| 国产精品视频一区国模私拍| 亚洲欧美第一页| 亚洲成人黄色在线观看| 国产成人精品一区二区| 亚洲精品视频播放| 国产欧美欧洲在线观看| 欧美大肥婆大肥bbbbb| 粉嫩老牛aⅴ一区二区三区| 91精品国产高清| 中文字幕欧美日韩va免费视频| 欧美性猛交xxxx黑人猛交| 亚洲精品成人av| 成人妇女淫片aaaa视频| 欧美中文字幕在线观看| 91久久精品久久国产性色也91| 色999日韩欧美国产| 国产精品第100页| 亚洲第一视频网站| 97国产精品人人爽人人做| 国产日韩欧美自拍| 日韩av一区二区在线| 日韩在线精品一区| 精品国产一区二区三区久久狼黑人| 国产精品久久久久国产a级| 久久av在线播放| 日韩av男人的天堂| 久久亚洲精品毛片| 亚洲精品美女久久久| 日韩中文字幕视频| 久久青草精品视频免费观看| 欧美成人在线影院| 亚洲欧美激情另类校园| 国产精品第1页| 日韩欧美精品网址| 久久99精品久久久久久噜噜| 久久久精品电影| 国产精品扒开腿做爽爽爽的视频| 综合国产在线观看| 26uuu另类亚洲欧美日本一| 亚洲久久久久久久久久久| 原创国产精品91| 欧美成人三级视频网站| 国产福利成人在线| 精品亚洲va在线va天堂资源站| 亚洲精品中文字| 国产一区二区色| 国产亚洲欧美日韩美女| 久久青草精品视频免费观看| 91网站在线免费观看| 久久777国产线看观看精品| 日韩av资源在线播放| 亚洲欧洲自拍偷拍| 亚洲欧美精品一区| 久久久www成人免费精品张筱雨| 国产精品视频99| 亚洲国产美女精品久久久久∴| 日本中文字幕成人| 亚洲国产成人精品久久| 亚洲国产三级网| www.久久撸.com| 欧美猛少妇色xxxxx| 欧美成人激情视频免费观看| 亚洲成人中文字幕| 欧美性xxxx极品hd欧美风情| 91久久嫩草影院一区二区| 最近2019中文字幕在线高清| 亚洲桃花岛网站| 国产精品福利小视频| 91精品视频观看| 久久久噜久噜久久综合| 97在线免费观看视频| 国产视频精品一区二区三区| 成人观看高清在线观看免费| 成人动漫网站在线观看| 日本亚洲精品在线观看| 亚洲一区美女视频在线观看免费| 亚洲成人av资源网| 色噜噜亚洲精品中文字幕| 亚洲a区在线视频| 日韩av在线天堂网| 色综合影院在线| 亚洲最新av网址| 国产成人精品久久亚洲高清不卡| 热久久视久久精品18亚洲精品| 精品偷拍各种wc美女嘘嘘| 欧洲成人在线观看| 欧美日韩一区二区免费视频| 欧美在线视频一区| 欧美黑人视频一区| 国产精品色婷婷视频| 日韩亚洲国产中文字幕| 精品国产成人在线| 91免费版网站入口| 国产91在线播放| 91成人国产在线观看| 91免费福利视频| 亚洲理论在线a中文字幕| 2020欧美日韩在线视频| 国产专区精品视频| 国产最新精品视频| 精品国产成人av| 精品激情国产视频| 77777亚洲午夜久久多人| 亚洲国产福利在线| 亚洲欧美福利视频| 91在线视频一区| 欧美亚洲午夜视频在线观看| 中文字幕免费国产精品| 成人羞羞国产免费| 2025国产精品视频| 久久夜色精品国产亚洲aⅴ| 一个色综合导航| 欧美成人精品h版在线观看| 欧美精品www在线观看| 夜夜躁日日躁狠狠久久88av| 国产成人精品久久二区二区| 色哟哟亚洲精品一区二区| 2018中文字幕一区二区三区| 久久久91精品| 国产剧情久久久久久| 欧美成人精品影院| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲精品中文字幕女同| 日韩av在线网址| 97超碰蝌蚪网人人做人人爽| 久久国产精品影片| 国产亚洲一级高清| 欧美一级大片在线观看| 92裸体在线视频网站| 欧美性高跟鞋xxxxhd| 69**夜色精品国产69乱| 欧美黑人狂野猛交老妇| 精品欧美一区二区三区| 欧美精品久久久久久久久| 人九九综合九九宗合| 色噜噜狠狠色综合网图区| 亚洲成人aaa| 麻豆一区二区在线观看| 国产精品流白浆视频| 午夜免费久久久久| 法国裸体一区二区| 人妖精品videosex性欧美| 欧美在线一区二区三区四| 日韩成人av在线|