最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JS觸摸事件、手勢事件詳解

 更新時間:2017年05月04日 09:38:12   作者:Miss____Du  
本篇文章主要介紹了JS觸摸事件、手勢事件詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

觸屏已經(jīng)是我們身邊電子設(shè)備的常態(tài)了。觸摸事件當(dāng)然也是隨著觸屏的出現(xiàn),用戶使用最多的事件啦!
難道使用觸屏事件后,其他原來的鼠標(biāo)事件就都不能用啦?當(dāng)然不是,只不過不是那么好用啊。

針對鼠標(biāo)事件,有哪些不適應(yīng)?

dbclick

觸屏設(shè)備不支持雙擊事件。雙擊瀏覽器窗口,會放大畫面。

可以通過在head標(biāo)簽內(nèi)加上這么一行:

復(fù)制代碼 代碼如下:

<meta name="viewport" content="width=device-width, minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">

可以實(shí)現(xiàn),我們編寫的頁面不會隨著用的手勢而放大縮小。

關(guān)于meta標(biāo)簽,我還沒有研究過,罪過啊。

mouse

在觸屏上,我們單擊一個元素,會相應(yīng)的觸發(fā):mousemove mousedown mouseup click,所以當(dāng)我們編寫移動客戶端界面時,可以為元素直接添加move事件,可以提高效率。

同時也會觸發(fā)mouseovermouseout,測試結(jié)果,我發(fā)現(xiàn),只有當(dāng)頁面第一次刷新時,單擊元素,參會觸發(fā)mouseover事件。

隨著觸屏移動端設(shè)備的普及使用,W3C開始制定TouchEvent規(guī)范。

觸摸事件

該類事件會在用戶手指放在屏幕上面時,在屏幕上滑動時,或從屏幕上移開時觸發(fā)。具體來說有以下幾個觸摸事件。
1、touchstart

當(dāng)手指放在屏幕上觸發(fā)。

2、touchmove

當(dāng)手指在屏幕上滑動時,連續(xù)地觸發(fā)。

3、touchend

當(dāng)手指從屏幕上離開時觸發(fā)。

4、touchcancel

當(dāng)系統(tǒng)停止跟蹤時觸發(fā),系統(tǒng)什么時候取消,文檔沒有明確的說明。

【總】以上四個,是w3c提供的觸摸事件,只針對觸摸設(shè)備,最常用的是前三個。

由于觸摸會導(dǎo)致屏幕動來動去,所以可以會在這些事件的事件處理函數(shù)內(nèi)使用event.preventDefault(),來阻止屏幕的默認(rèn)滾動。

除了常用的DOM屬性,觸摸事件還包含下列三個用于跟蹤觸摸的屬性。
1、touches:表示當(dāng)前跟蹤的觸摸操作的touch對象的數(shù)組。

當(dāng)一個手指在觸屏上時,event.touches.length=1,

當(dāng)兩個手指在觸屏上時,event.touches.length=2,以此類推。
2、targetTouches:特定于事件目標(biāo)的touch對象數(shù)組。

因?yàn)閠ouch事件是會冒泡的,所以利用這個屬性指出目標(biāo)對象。

3、changedTouches:表示自上次觸摸以來發(fā)生了什么改變的touch對象的數(shù)組。

每個touch對象都包含下列幾個屬性:
4、clientX:觸摸目標(biāo)在視口中的x坐標(biāo)。

clientY:觸摸目標(biāo)在視口中的y坐標(biāo)。

identifier:標(biāo)識觸摸的唯一ID。

pageX:觸摸目標(biāo)在頁面中的x坐標(biāo)。

pageY:觸摸目標(biāo)在頁面中的y坐標(biāo)。

screenX:觸摸目標(biāo)在屏幕中的x坐標(biāo)。

screenY:觸摸目標(biāo)在屏幕中的y坐標(biāo)。

target:觸摸的DOM節(jié)點(diǎn)目標(biāo)。

【如何使用呢?】

  EventUtil.addHandler(div,"touchstart",function(event){
    div.innerHTML=event.touches[0].clientX+','+event.touches[0].clientY;
  });
  EventUtil.addHandler(div,"touchmove",function(event){
    event.preventDefault();
    div.innerHTML=event.touches[0].clientX;
  });
  EventUtil.addHandler(div,"touchend",function(event){
    div.innerHTML=event.changedTouches[0].clientY;
  });

使用clientX……時,必須要指明具體的touch對象,而不要直接指明數(shù)組。

event.touches[0]

touchend事件處理函數(shù)中,當(dāng)該事件發(fā)生時,touches里面已經(jīng)沒有任何的touch對象了,此時,就要使用changeTouches集合。

手勢事件

  1. gesturestart:當(dāng)一個手指已經(jīng)按在屏幕上,而另一個手指又觸摸在屏幕時觸發(fā)。
  2. gesturechange:當(dāng)觸摸屏幕的任何一個手指的位置發(fā)生變化時觸發(fā)。
  3. gestureend:當(dāng)任何一個手指從屏幕上面移開時觸發(fā)。

【注意】只有兩個手指都觸摸到事件的接收容器時才觸發(fā)這些手勢事件。

觸摸事件與手勢事件之間的關(guān)系

1、當(dāng)一個手指放在屏幕上時,會觸發(fā)touchstart事件,如果另一個手指又放在了屏幕上,則會觸發(fā)gesturestart事件,隨后觸發(fā)基于該手指的touchstart事件。

2、如果一個或兩個手指在屏幕上滑動,將會觸發(fā)gesturechange事件,但只要有一個手指移開,則會觸發(fā)gestureend事件,緊接著又會觸發(fā)toucheend事件。

手勢的專有屬性

  1. rotation:表示手指變化引起的旋轉(zhuǎn)角度,負(fù)值表示逆時針,正值表示順時針,從零開始。
  2. scale:表示兩個手指之間的距離情況,向內(nèi)收縮會縮短距離,這個值從1開始,并隨距離拉大而增長。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JavaScript 格式字符串的應(yīng)用

    JavaScript 格式字符串的應(yīng)用

    在使用JavaScript中的Date對象時,有一個常用的操作就是輸出。但Date對象自帶的toString()方法輸出的格式并不能滿足用戶多樣化的需求。我在想,是不是可以將C#中DateTime.ToString(string format)方法的形式引入到JavaScript中呢?
    2010-03-03
  • 基于JavaScript實(shí)現(xiàn)的快速排序算法分析

    基于JavaScript實(shí)現(xiàn)的快速排序算法分析

    這篇文章主要介紹了基于JavaScript實(shí)現(xiàn)的快速排序算法,分析了快速排序的原理并結(jié)合實(shí)例形式給出了javascript快速排序的操作步驟與相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-04-04
  • js中用事實(shí)證明cssText性能高的問題

    js中用事實(shí)證明cssText性能高的問題

    首先要感謝 EtherDream 的不同觀點(diǎn),在 巧用cssText屬性批量操作樣式 一篇中由于他的質(zhì)疑態(tài)度使我做了進(jìn)一步的測試。
    2011-03-03
  • TypeScript中Getter/Setter用法詳解

    TypeScript中Getter/Setter用法詳解

    getter使我們能夠?qū)傩越壎ǖ皆谠L問屬性時調(diào)用的函數(shù),而setter將屬性綁定到在嘗試設(shè)置屬性時調(diào)用的函數(shù),下面就跟隨小編來看看TypeScript中Getter/Setter的用法吧
    2024-10-10
  • 類似CSDN圖片切換效果腳本

    類似CSDN圖片切換效果腳本

    原來的腳本當(dāng)只有一張圖片時會彈出JavaScript腳本錯誤,特此將自己修改完的版本貼出。
    2009-09-09
  • 詳解webpack解惑:require的五種用法

    詳解webpack解惑:require的五種用法

    這篇文章主要介紹了詳解webpack解惑:require的五種用法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 詳解JavaScript實(shí)現(xiàn)監(jiān)聽路由變化

    詳解JavaScript實(shí)現(xiàn)監(jiān)聽路由變化

    前端實(shí)現(xiàn)路由變化主要有兩種方式,本文主要介紹了這兩種方法的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • JavaScript計算字符串中特定字符出現(xiàn)次數(shù)的實(shí)例詳解

    JavaScript計算字符串中特定字符出現(xiàn)次數(shù)的實(shí)例詳解

    在JavaScript編程中,經(jīng)常會遇到需要計算字符串中特定字符出現(xiàn)次數(shù)的情況,在本文中,我將分享兩個簡單的JavaScript函數(shù),用于計算字符串中特定字符出現(xiàn)的次數(shù),需要的朋友可以參考下
    2023-11-11
  • JavaScript處理中文字符串的Base64編碼與解碼的兩種方法

    JavaScript處理中文字符串的Base64編碼與解碼的兩種方法

    這篇文章主要介紹了在 JavaScript 中處理中文字符串的 Base64 編碼與解碼,解釋了 Base64 編碼與中文字符沖突的原因,分別闡述了手動實(shí)現(xiàn)和使用TextEncoder和TextDecoder API 兩種方法,包括編碼和解碼的具體實(shí)現(xiàn)及示例,最后總結(jié)了兩種方法的適用場景
    2025-01-01
  • JavaScript 冒泡排序和選擇排序的實(shí)現(xiàn)代碼

    JavaScript 冒泡排序和選擇排序的實(shí)現(xiàn)代碼

    本文通過實(shí)例代碼給大家介紹了js冒泡排序和選擇排序的實(shí)現(xiàn)代碼,代碼簡單易懂,非常不錯,具有參考借鑒價值,感興趣的朋友一起學(xué)習(xí)吧
    2016-09-09

最新評論

那曲县| 志丹县| 永州市| 米林县| 东丰县| 溧水县| 侯马市| 铁岭市| 贺州市| 突泉县| 景宁| 沾化县| 乃东县| 鄂温| 鹤岗市| 漳浦县| 胶州市| 连州市| 崇州市| 望奎县| 湘乡市| 东台市| 新源县| 江达县| 新安县| 石景山区| 光山县| 揭东县| 利川市| 肃南| 大关县| 通州区| 开远市| 石门县| 巩义市| 包头市| 九龙县| 滦南县| 阳东县| 桓仁| 靖江市|