1. 程式人生 > >小程式開發之【前端開發】【學習第二節】【五】

小程式開發之【前端開發】【學習第二節】【五】

接著上一篇說,下面說一下事件物件,如果沒特殊說明,當元件觸發事件時,邏輯層繫結該事件的事件處理函式會收到一個事件物件

<view bindtap="myevent">view</view>
myevent:function(e){
console.log(e)
},

myevent的引數e便是事件物件,類似於JavaScript事件繫結。
事件物件屬性分為三類:BaseEvent,CustomEvent,TouchEvent

BaseEvent為基礎事件物件屬性:

type:事件型別

timeStamp:事件生成時的時間戳,頁面開啟到觸發所經過的ms

target:觸發事件源元件(即冒泡開始的元件)的相關屬性集合,屬性有:

id:事件源元件的id

tagName:事件源元件的型別

dataset:事件源元件上由data-開頭的自定義屬性組成的集合

currentTarget:事件繫結的當前元件的相關屬性集合,屬性包括:

id:當前元件的id

tagName:當前元件的型別

dataset:當前元件上由data-開頭的自定義屬性組成的集合

<canvas/>中的觸控事件不可冒泡,所以沒有currentTarget屬性組成的集合

dataset是元件的自定義資料,通過這種方式可以將元件的自定義屬性傳遞給邏輯層。

書寫格式為:以data-開頭,多個單詞由連字元“-”連線,屬性名不能大寫,最終在dataset中將連字元轉成駝峰形式,例如:

<view bindtap="myevent" data-my-name="weixin" data-myage="22">
dataset 例項
</view>
myevent:function(e){
console.log(e.currentTarget.dataset)
},
結果圖

CustomEvent為自定義事件物件,TouchEvent觸控事件物件,都繼承BaseEvent,customevent只有一個屬性detail,通常傳遞元件特殊資訊;TouchEvent屬性有:touches,觸控事件,當前停留在螢幕中的觸控點資訊的陣列;changedtouches,觸控事件,當前變化的觸控點資訊的陣列,如touchstart,touchmove,touchend,touchcancel,兩個屬性都是陣列格式,以支援多點觸控。每個元素為一個Touch物件。

Touch物件的屬性:

identifier:觸控點的識別符號

pageX,pageY,clientX,clientY.

...

接下來說一說引用,一個WXML可以通過import或include引入其他WXML檔案。區別在於,import引入WXML檔案後只接受模板的定義,忽略模板之外的內容,include恰恰相反。具體來說,import引入模板定義,include引入元件。

<import/>的src屬性是被引入檔案的相對地址,這裡就不舉例了。

import引用有作用域概念,只能直接使用引入的定義模板,不能使用間接的。意思就是說:如果a.WXML引入了b.WXML,b.WXML引入了c.WXML,那麼a.WXML是能使用b.WXML的template,而不能使用c.WXML。

include

頁面樣式檔案(WXSS)

尺寸單位:CSS中原有尺寸單位在不同尺寸螢幕中不能完美實現元素按比例縮放,WXSS在此基礎上拓展了兩種尺寸單位:rpx(responsive pixel)和rem(root em),這兩種尺寸單位都是相對單位,最終會被換算成Px。WXSS規定螢幕寬度為750rpx,如在iphone6在中375px。

rem,WXSS規定螢幕寬度為200rem,在不同的裝置有不同的換算比例。

選擇器

WXSS實現了CSS的部分選擇器。使用規則和CSS一樣。這個比較簡單,就不舉例了。類似HTML,樣式除了寫在WXSS中也可以通過設定style和class屬性來控制樣式,一般靜態樣式都寫在WXSS,以免影響渲染的速度。

樣式匯入

通常為了方便,會將WXSS拆分成多個檔案,這時就需要@import在當前WXSS檔案中匯入其他WXSS檔案

@import "xxx.wxss";

這裡的路徑是相對路徑。