欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

微信小程序 觸控事件詳細(xì)介紹

 更新時(shí)間:2016年10月17日 15:01:14   投稿:lqh  
這篇文章主要介紹了微信小程序 觸控事件的相關(guān)資料,在開(kāi)發(fā)微信小程序的時(shí)候,難免會(huì)用到這樣的功能,這里小編就幫大家梳理下相應(yīng)的知識(shí),需要的朋友可以參考下

微信小程序 觸控事件:

            微信小程序的"事件"挺有意思??戳苏f(shuō)明文檔后發(fā)現(xiàn)它的功能很全,事件可以向父節(jié)點(diǎn)傳遞,而且打印這個(gè)事件的信息很透明,調(diào)試起來(lái)應(yīng)該非常方便。
接下來(lái)把文檔copy過(guò)來(lái)

原文地址:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html

》》》什么是事件

  1. 事件是視圖層到邏輯層的通訊方式。
  2. 事件可以將用戶(hù)的行為反饋到邏輯層進(jìn)行處理。
  3. 事件可以綁定在組件上,當(dāng)達(dá)到觸發(fā)事件,就會(huì)執(zhí)行邏輯層中對(duì)應(yīng)的事件處理函數(shù)。
  4. 事件對(duì)象可以攜帶額外信息,如id, dataset, touches。

事件的使用方式

在組件中綁定一個(gè)事件處理函數(shù)。

如bindtap,當(dāng)用戶(hù)點(diǎn)擊該組件的時(shí)候會(huì)在該頁(yè)面對(duì)應(yīng)的Page中找到相應(yīng)的事件處理函數(shù)。

<view id="tapTest" data-hi="MINA" bindtap="tapName"> Click me! </view> 

在相應(yīng)的Page定義中寫(xiě)上相應(yīng)的事件處理函數(shù),參數(shù)是event。

Page({ 
 tapName: function(event) { 
 console.log(event) 
 } 
}) 

可以看到log出來(lái)的信息大致如下:

{ 
"type": "tap", 
"timeStamp": 1252, 
"target": { 
 "id": "tapTest", 
 "offsetLeft": 0, 
 "offsetTop": 0, 
 "dataset": { 
 "hi": "MINA" 
 } 
}, 
"currentTarget": { 
 "id": "tapTest", 
 "offsetLeft": 0, 
 "offsetTop": 0, 
 "dataset": { 
 "hi": "MINA" 
 } 
}, 
"touches": [{ 
 "pageX": 30, 
 "pageY": 12, 
 "clientX": 30, 
 "clientY": 12, 
 "screenX": 112, 
 "screenY": 151 
}], 
"detail": { 
 "x": 30, 
 "y": 12 
} 
} 

事件詳解

事件分類(lèi)

事件分為冒泡事件和非冒泡事件:

冒泡事件:當(dāng)一個(gè)組件上的事件被觸發(fā)后,該事件會(huì)向父節(jié)點(diǎn)傳遞。

非冒泡事件:當(dāng)一個(gè)組件上的事件被觸發(fā)后,該事件不會(huì)向父節(jié)點(diǎn)傳遞。

》》》事件分類(lèi)

  1. touchstart 手指觸摸
  2. touchmove 手指觸摸后移動(dòng)
  3. touchcancel 手指觸摸動(dòng)作被打斷,如彈窗和來(lái)電提醒
  4. touchend 手指觸摸動(dòng)作結(jié)束
  5. tap 手指觸摸后離開(kāi)
  6. longtap 手指觸摸后后,超過(guò)350ms離開(kāi)

》》》事件綁定

事件綁定的寫(xiě)法同組件的屬性,以 key、value 的形式。

  1. key 以bind或catch開(kāi)頭,然后跟上事件的類(lèi)型,如bindtap, catchtouchstart
  2. value 是一個(gè)字符串,需要在對(duì)應(yīng)的 Page 中定義同名的函數(shù)。不然當(dāng)觸發(fā)事件的時(shí)候會(huì)報(bào)錯(cuò)。 bind事件綁定不會(huì)阻止冒泡事件向上冒泡,catch事件綁定可以阻止冒泡事件向上冒泡。

上面簡(jiǎn)單介紹了小程序事件基礎(chǔ),是時(shí)候彰顯"事件"的威力:

  1. 單擊(tap)
  2. 雙擊(dbtap)
  3. 長(zhǎng)按(longtap)
  4. 滑動(dòng)
  5. 多點(diǎn)觸控

1.單擊

單擊事件由touchstart、touchend組成,touchend后觸發(fā)tap事件。

 

<view>
 <button type="primary" bindtouchstart="mytouchstart" bindtouchend="mytouchend" bindtap="mytap">點(diǎn)我吧</button>
</view>
mytouchstart: function(e){ console.log(e.timeStamp + '- touch start')
},mytouchend: function(e){ console.log(e.timeStamp + '- touch end')
},mytap: function(e){ console.log(e.timeStamp + '- tap')
}

2.雙擊

雙擊事件由兩個(gè)單擊事件組成,兩次間隔時(shí)間小于300ms認(rèn)為是雙擊;微信官方文檔沒(méi)有雙擊事件,需要開(kāi)發(fā)者自己定義處理。

 

<view>
 <button type="primary" bindtap="mytap">點(diǎn)我吧</button>
</view>


 

 3.長(zhǎng)按

長(zhǎng)按事件手指觸摸后,超過(guò)350ms再離開(kāi)。

 

<view>
 <button type="primary" bindtouchstart="mytouchstart" bindlongtap="mylongtap" 
 bindtouchend="mytouchend" bindtap="mytap">點(diǎn)我吧</button>
</view>
mytouchstart: function(e){ console.log(e.timeStamp + '- touch start')
},//長(zhǎng)按事件mylongtap: function(e){ console.log(e.timeStamp + '- long tap')
 },mytouchend: function(e){ console.log(e.timeStamp + '- touch end')
},mytap: function(e){ console.log(e.timeStamp + '- tap')
}

單擊、雙擊、長(zhǎng)按屬于點(diǎn)觸事件,會(huì)觸發(fā)touchstart、touchend、tap事件,touchcancel事件只能在真機(jī)模擬,不多說(shuō)了。

事件 觸發(fā)順序
單擊 touchstart → touchend → tap
雙擊 touchstart → touchend → tap → touchstart → touchend → tap
長(zhǎng)按 touchstart → longtap → touchend → tap

4.滑動(dòng)

手指觸摸屏幕并移動(dòng),為了簡(jiǎn)化起見(jiàn),下面以水平滑動(dòng)和垂直滑動(dòng)為例。 滑動(dòng)事件由touchstart、touchmove、touchend組成

 

坐標(biāo)圖:

 

  1. 以屏幕左上角為原點(diǎn)建立直角坐標(biāo)系。第四象限為手機(jī)屏幕,Y軸越往下坐標(biāo)值越大(注意跟數(shù)學(xué)象限的區(qū)別)。
  2. 假設(shè)A點(diǎn)為touchstart事件觸摸點(diǎn),坐標(biāo)為A(ax,ay),然后手指向上滑動(dòng)到點(diǎn)B(bx,by),就滿(mǎn)足條件by < ay;
  3. 同理,向右滑動(dòng)到C(cx,cy),滿(mǎn)足cx > ax;向下滑動(dòng)到D(dx,dy),滿(mǎn)足dy > ay;向左移動(dòng)到E(ex,ey)滿(mǎn)足ex < ax.
  4. 計(jì)算線段AB在Y軸上投影長(zhǎng)度為m,在X軸上的投影長(zhǎng)度為n
  5. 計(jì)算r = m/n,如果r > 1,視為向上滑動(dòng)。
  6. 同理計(jì)算線段AC,AD,AE在Y軸投影長(zhǎng)度與X軸的投影長(zhǎng)度之比,得出向右向下向左的滑動(dòng)。

以上沒(méi)考慮r為1的情況。

<view>
 <button type="primary" bindtouchstart="mytouchstart" bindtouchmove="mytouchmove">點(diǎn)我吧</button>
</view>


5.多點(diǎn)觸控

由于模擬器尚不支持多點(diǎn)觸控,內(nèi)測(cè)開(kāi)放后,繼續(xù)補(bǔ)充。

 感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • JS 中 new 的作用詳細(xì)

    JS 中 new 的作用詳細(xì)

    這篇文章主要給大家介紹的是JS 中 new 的作用,大部分講 new 的文章會(huì)從面向?qū)ο蟮乃悸分v起,,今天的文章我們就先來(lái)舉例說(shuō)明問(wèn)題所在,然后詳細(xì)解說(shuō),感興趣的小伙伴可以參考一下哦
    2021-10-10
  • 總結(jié)JavaScript中BigIn函數(shù)常見(jiàn)的屬性

    總結(jié)JavaScript中BigIn函數(shù)常見(jiàn)的屬性

    本文基于JavaScript基礎(chǔ),介紹了 BigInt 函數(shù),常見(jiàn)的屬性,通過(guò) BigInt 函數(shù)進(jìn)行數(shù)字運(yùn)算符的比較。布爾運(yùn)算等等,通過(guò)按案例的分析進(jìn)行詳細(xì)的講解,需要的朋友可以參考一下
    2021-10-10
  • 微信小程序 wx:for的使用實(shí)例詳解

    微信小程序 wx:for的使用實(shí)例詳解

    這篇文章主要介紹了微信小程序 wx:for的使用實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • js前端實(shí)現(xiàn)word?excel?pdf?ppt?mp4圖片文本等文件預(yù)覽

    js前端實(shí)現(xiàn)word?excel?pdf?ppt?mp4圖片文本等文件預(yù)覽

    這篇文章主要為大家介紹了js前端實(shí)現(xiàn)word?excel?pdf?ppt?mp4圖片文本等文件預(yù)覽示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 在博客園博文中添加自定義右鍵菜單的方法詳解

    在博客園博文中添加自定義右鍵菜單的方法詳解

    本文是DOM鼠標(biāo)事件的一個(gè)實(shí)際應(yīng)用。查看博客園的博客文章時(shí),有的文章非常長(zhǎng),卻沒(méi)有回到頂部按鈕;而且文章的點(diǎn)贊和評(píng)論都在文章最底部,使用時(shí)并不方便。所以使用自定義右鍵菜單來(lái)實(shí)現(xiàn)回到頂部、點(diǎn)贊、評(píng)論這三個(gè)主要功能,需要的朋友可以參考下
    2020-02-02
  • JavaScript設(shè)計(jì)模式之單例模式應(yīng)用場(chǎng)景案例詳解

    JavaScript設(shè)計(jì)模式之單例模式應(yīng)用場(chǎng)景案例詳解

    這篇文章主要為大家介紹了JavaScript中單例模式的應(yīng)用場(chǎng)景案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • 讓chatGPT教你如何使用taro創(chuàng)建mbox

    讓chatGPT教你如何使用taro創(chuàng)建mbox

    這篇文章主要為大家介紹了讓chatGPT教你如何使用taro創(chuàng)建mbox實(shí)現(xiàn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • JS屬性scrollTop?clientHeight?scrollHeight理解學(xué)習(xí)

    JS屬性scrollTop?clientHeight?scrollHeight理解學(xué)習(xí)

    這篇文章主要為大家介紹了JS屬性scrollTop?clientHeight?scrollHeight理解學(xué)習(xí),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • umi插件開(kāi)發(fā)仿dumi項(xiàng)目實(shí)現(xiàn)基礎(chǔ)路由解析

    umi插件開(kāi)發(fā)仿dumi項(xiàng)目實(shí)現(xiàn)基礎(chǔ)路由解析

    這篇文章主要為大家介紹了umi插件開(kāi)發(fā)仿dumi項(xiàng)目實(shí)現(xiàn)基礎(chǔ)路由解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • 微信小程序之前臺(tái)循環(huán)數(shù)據(jù)綁定

    微信小程序之前臺(tái)循環(huán)數(shù)據(jù)綁定

    這篇文章主要介紹了微信小程序之前臺(tái)循環(huán)數(shù)據(jù)綁定的相關(guān)資料,這里提供實(shí)例幫助大家學(xué)習(xí)理解這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08

最新評(píng)論