W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
如bindtap,當用戶點擊該組件的時候會在該頁面對應的 Page 中找到相應的事件處理函數(shù)。
<!-- index.ttml -->
<view id="tapTest" data-hi="bytedance" bindtap="tapName"> Click me! </view>
Page({
tapName: function(event) {
console.log(event);
}
});
上面的 console.log 打印出來的 event 對象的信息大致如下:
{
"type": "tap",
"timeStamp": 895,
"target": {
"id": "tapTest",
"dataset": {
"hi": "bytedance"
}
},
"currentTarget": {
"id": "tapTest",
"dataset": {
"hi": "bytedance"
}
},
"detail": {
"x": 53,
"y": 14
},
"touches": [
{
"identifier": 0,
"pageX": 53,
"pageY": 14,
"clientX": 53,
"clientY": 14
}
],
"changedTouches": [
{
"identifier": 0,
"pageX": 53,
"pageY": 14,
"clientX": 53,
"clientY": 14
}
]
}
事件分為冒泡事件和非冒泡事件:
冒泡事件:當一個組件上的事件被觸發(fā)后,該事件會向父節(jié)點傳遞。 非冒泡事件:當一個組件上的事件被觸發(fā)后,該事件不會向父節(jié)點傳遞。
類型 | 觸發(fā)條件 |
---|---|
touchstart | 手指觸摸動作開始 |
touchmove | 手指觸摸后移動 |
touchcancel | 手指觸摸動作被打斷,如來電提醒,彈窗 |
touchend | 手指觸摸動作結束 |
tap | 手指觸摸后馬上離開 |
longpress | 手指觸摸后,超過 350ms 再離開,如果指定了事件回調函數(shù)并觸發(fā)了這個事件,tap 事件將不被觸發(fā) |
longtap | 手指觸摸后,超過 350ms 再離開(推薦使用 longpress 事件代替) |
transitionend | 會在 TTSS transition 或 tt.createAnimation 動畫結束后觸發(fā) |
animationstart | 會在一個 TTSS animation 動畫開始時觸發(fā) |
animationiteration | 會在一個 TTSS animation 一次迭代結束時觸發(fā) |
animationend | 會在一個 TTSS animation 動畫完成時觸發(fā) |
touchforcechange | 在支持 3D Touch 的 iPhone 設備,重按時會觸發(fā) |
事件綁定的寫法同組件的屬性,以 key、value 的形式。
如無特殊說明,當組件觸發(fā)事件時,邏輯層綁定該事件的處理函數(shù)會收到一個事件對象。
屬性 | 類型 | 說明 |
---|---|---|
type | String | 事件類型 |
timeStamp | Integer | 事件生成時的時間戳 |
target | Object | 觸發(fā)事件的組件的一些屬性值集合 |
currentTarget | Object | 當前組件的一些屬性值集合 |
屬性 | 類型 | 說明 |
---|---|---|
detail | Object | 額外的信息 |
屬性 | 類型 | 說明 |
---|---|---|
touches | Array | 觸摸事件,當前停留在屏幕中的觸摸點信息的數(shù)組 |
changedTouches | Array | 觸摸事件,當前變化的觸摸點信息的數(shù)組 |
特殊事件: <canvas/> 中的觸摸事件不可冒泡,所以沒有 currentTarget。
target
觸發(fā)事件的組件的一些屬性值集合;
屬性 | 類型 | 說明 |
---|---|---|
id | String | 事件源組件的 id |
tagName | String | 當前組件的類型 |
dataset | Object | 事件源組件上由 data-開頭的自定義屬性組成的集合 |
currentTarget
事件綁定的當前組件。
屬性 | 類型 | 說明 |
---|---|---|
id | String | 當前組件的 id |
tagName | String | 當前組件的類型 |
dataset | Object | 當前組件上由 data-開頭的自定義屬性組成的集合 |
dataset
在組件中可以定義數(shù)據(jù),這些數(shù)據(jù)將會通過事件傳遞給 SERVICE。 書寫方式: 以data-開頭,多個單詞由連字符-鏈接,不能有大寫(大寫會自動轉成小寫)如data-element-type,最終在 event.currentTarget.dataset 中會將連字符轉成駝峰elementType。
demo:
<!-- index.ttml -->
<view data-alpha-beta="1" data-alphaBeta="2" bindtap="bindViewTap">
DataSet Test
</view>
Page({
bindViewTap: function(event) {
event.currentTarget.dataset.alphaBeta === 1; // - 會轉為駝峰寫法
event.currentTarget.dataset.alphabeta === 2; // 大寫會轉為小寫
}
});
touches 是一個數(shù)組,每個元素為一個 Touch 對象(canvas 觸摸事件中攜帶的 touches 是 CanvasTouch 數(shù)組)。 表示當前停留在屏幕上的觸摸點。
Touch 對象
屬性 | 類型 | 說明 |
---|---|---|
identifier | Number | 觸摸點的標識符 |
pageX, pageY | Number | 距離文檔左上角的距離,文檔的左上角為原點 ,橫向為 X 軸,縱向為 Y 軸 |
clientX, clientY | Number | 距離頁面可顯示區(qū)域(屏幕除去導航條)左上角距離,橫向為 X 軸,縱向為 Y 軸 |
CanvasTouch 對象
屬性 | 類型 | 說明 |
---|---|---|
identifier | Number | 觸摸點的標識符 |
x, y | Number | 距離 Canvas 左上角的距離,Canvas 的左上角為原點 ,橫向為 X 軸,縱向為 Y 軸 |
changedTouches 數(shù)據(jù)格式同 touches。 表示有變化的觸摸點,如從無變有(touchstart),位置變化(touchmove),從有變無(touchend、touchcancel)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: