小程序組件
- 視圖容器
(一) 視圖容器
- 了解小程序組件中的視圖容器
- 明確小程序組件中的視圖容器的用途和方法
- 了解不同視圖容器的特點和注意事項
(1) view 視圖容器
view視圖容器:是小程序最基礎(chǔ)的組件序芦,借助view可以實現(xiàn)頁面結(jié)構(gòu)的劃分勉抓,頁面布局的調(diào)整等.
<view hover-class="view_hover" hover-start-time=500 hover-stay-time=500 hover-stop-propagation= true > 123</view>
view除了基礎(chǔ)的公共屬性外,還有四個屬性
屬性名 | 類型 | 默認值 | 說明 |
---|---|---|---|
hover-class | String | none | 指定按下去的樣式類橄维,當(dāng)hover-class="none"時弧哎,沒有點擊態(tài)效果 |
hover-stop-propagation | Boolean | false | 指定是否阻止本節(jié)點的祖先節(jié)點出現(xiàn)點擊態(tài) |
hover-start-time | Number | 50 | 按住后多久出現(xiàn)點擊態(tài)哪轿,單位毫秒 |
hover-stay-time | Number | 400 | 手指松開后點擊態(tài)保留時間腐螟,單位毫秒 |
(2) scroll-view容器
- scroll-view 視圖容器: 可以在頁面形成一個可以滾動的視圖區(qū)域,幫助開發(fā)者實現(xiàn)頁面部分內(nèi)容的滑動展示
<scroll-view
scroll-x
upper-threshold = 50
lower-threshold = 50
scroll-top = 50
scroll-left =50
scroll-into-view="part1"
scroll-with-animation = true
enable-back-to-top = true
></scroll-view>
屬性名 | 類型 | 默認值 | 說明 |
---|---|---|---|
scroll-x | boolean | false | 允許橫向滾動 |
scroll-y | Boolean | false | 允許縱向滾動 |
upper-threshold | Number | 50 | 距離頂部/左邊多遠(單位px)觸發(fā)scrolltoupper事件 |
bindscrolltoupper | Event | 滾動到頂部/左邊,會觸發(fā)scrolltoupper事件 | |
lower-threshold | Number | 50 | 距離底部/右邊多遠(單位px)觸發(fā)scrolltolower事件 |
bindscrolltolower | Event | 滾動到底部/右邊,會觸發(fā)scrolltolower事件 | |
scroll-top | Number | 設(shè)置豎向滾動條位置 | |
scroll-left | Number | 設(shè)置橫向滾動條位置 | |
scroll-with-animation | Boolean | false | 在設(shè)置滾動條位置時候使用動畫過渡 |
scroll-into-view | String | 值為某子元素ID(id不能以數(shù)字開頭)設(shè)置哪個方向可滾動則在哪個方向滾動到該元素 | |
enable-back-to-top | Boolean | false | ios點擊頂部狀態(tài)欄钦幔,安卓雙擊標題欄枕屉,滾動條返回頂部,支持豎向 |
bindscroll | event | 滾動時觸發(fā),event.detail={scrollLeft,scrollTop,scrollHeight,scrollWidth,deltax,deltay} |
請勿在scroll-view中使用textarea ,map,canvas,video組件
scroll -into-view的優(yōu)先級高于scroll-top;
在滾動scroll-view時會阻止頁面回彈节槐,所以在scroll-view中滾動搀庶,是無法觸發(fā)onPullDownRefresh
若要使用下拉刷新拐纱,請使用頁面的滾動而不是scroll-view這樣也能通過點擊頂部狀態(tài)欄回到頁面頂部
(3)swiper容器
- swiper滑塊容器能夠在小程序內(nèi)實現(xiàn)輪播圖的效果
swiper組件除了公共屬性外铜异,還有一些特殊的屬性
- 指示點控制
屬性名 | 類型 | 默認值 | 說明 |
---|---|---|---|
indicator-dots | Boolean | false | 是否顯示面板指示點 |
indicator-color | Color | rgba(0, 0, 0, .3) | 指示點顏色 |
indicator-active-color | Color | #000000 | 當(dāng)前選中的指示點顏色 |
- 播放控制
屬性名 | 類型 | 默認值 | 說明 |
---|---|---|---|
autoplay | Boolean | false | 是否顯示面板指示點 |
interval | Number | 5000 | 自動切換時間間隔 |
duration | Number | 500 | 滑動動畫時長 |
circular | Boolean | false | 是否采用銜接滑動 |
vertical | Boolean | false | 滑動方向是否是縱向 |
- 滑塊控制
屬性名 | 類型 | 默認值 | 說明 |
---|---|---|---|
current | Number | 0 | 當(dāng)前所在滑塊的 index |
current-item-id | String | 當(dāng)前滑塊的item-id不能與current被同時指定 | |
previous-margin | String | "0px" | 前邊距,可用于露出前一項的一小部分秸架,接受 px 和 rpx 值 |
next-margin | String | "0px" | 后邊距揍庄,可用于露出后一項的一小部分,接受 px 和 rpx 值 |
display-multiple-items | Number | 1 | 同時顯示的滑塊數(shù)量 |
skip-hidden-item-layout | Boolean | false | 是否跳過來顯示的滑塊布局东抹,設(shè)為true可優(yōu)化復(fù)雜情況下的滑動性能蚂子,但是會丟失隱藏狀態(tài)滑塊的布局信息 |
- 事件屬性
屬性名 | 類型 | 說明 |
---|---|---|
bindchange | event | current改變時會觸發(fā)change事件沃测,event.detail={current:current,source:source} |
bindanimationfinish | event | 動畫結(jié)束時候會觸發(fā)animationfinish事件event.detail同上 |
- swiper組件使用注意
swiper中只可以放置<swiper-item>組件,否則會導(dǎo)致未定義行為
如果在bindchange的事件回調(diào)函數(shù)中使用setData改變current值食茎,則有可能導(dǎo)致setData被不停的調(diào)用,因為通常情況下請在改變current值前檢測source字段判斷是否用戶觸摸引起
<swiper
indicator-dots="{{indicatorDots}}"
autoplay="{{autoplay}}"
circular="{{circular}}"
vertical="{{vertical}}"
interval="{{interval}}"
duration="{{duration}}"
previous-margin="{{previousMargin}}px"
next-margin="{{nextMargin}}px">
<block wx:for="{{background}}" wx:key="*this">
<swiper-item>
<view class="swiper-item {{item}}"></view>
</swiper-item>
</block>
</swiper>
(4)movable-view 可視圖容器
- movable-view : 是小程序的可移動視圖容器,用于制作一些需要滑動操作的場景
<movable-area>
<movable-view x="{{x}}" y="{{y}}" direction="all"></movable-view>
</movable-area>
屬性名 | 類型 | 默認值 | 說明 | 版本號 |
---|---|---|---|---|
direction | String | none | movable-view的移動方向蒂破,屬性值有all、vertical别渔、horizontal附迷、none | |
inertia | Boolean | false | movable-view是否帶有慣性 | |
out-of-bounds | Boolean | false | 超過可移動區(qū)域后,movable-view是否還可以移動 | |
x | Number / String | 定義x軸方向的偏移哎媚,如果x的值不在可移動范圍內(nèi)喇伯,會自動移動到可移動范圍;改變x的值會觸發(fā)動畫 | ||
y | Number / String | 定義y軸方向的偏移拨与,如果y的值不在可移動范圍內(nèi)稻据,會自動移動到可移動范圍;改變y的值會觸發(fā)動畫 | ||
damping | Number | 20 | 阻尼系數(shù)买喧,用于控制x或y改變時的動畫和過界回彈的動畫捻悯,值越大移動越快 | |
friction | Number | 2 | 摩擦系數(shù),用于控制慣性滑動的動畫淤毛,值越大摩擦力越大秋度,滑動越快停止;必須大于0钱床,否則會被設(shè)置成默認值 | |
disabled | Boolean | false | 是否禁用 | 1.9.90 |
scale | Boolean | false | 是否支持雙指縮放荚斯,默認縮放手勢生效區(qū)域是在movable-view內(nèi) | 1.9.90 |
scale-min | Number | 0.5 | 定義縮放倍數(shù)最小值 | 1.9.90 |
scale-max | Number | 10 | 定義縮放倍數(shù)最大值 | 1.9.90 |
scale-value | Number | 1 | 定義縮放倍數(shù),取值范圍為 0.5 - 10 | 1.9.90 |
bindchange | EventHandle | 拖動過程中觸發(fā)的事件查牌,event.detail = {x: x, y: y, source: source}事期,其中source表示產(chǎn)生移動的原因,值可為touch(拖動)纸颜、touch-out-of-bounds(超出移動范圍)兽泣、out-of-bounds(超出移動范圍后的回彈)、friction(慣性)和空字符串(setData) | 1.9.90 | |
bindscale | EventHandle | 縮放過程中觸發(fā)的事件胁孙,event.detail = {scale: scale} |
movable-view 必須設(shè)置width和height屬性唠倦,不設(shè)置默認為10px
movable-view 默認為絕對定位,top和left屬性為0px
當(dāng)movable-view小于movable-area時涮较,movable-view的移動范圍是在movable-area內(nèi)稠鼻;當(dāng)movable-view>大于movable-area時,movable-view的移動范圍必須包含movable-area(x軸方向和y軸方向分開考慮)
<movable-area>
<movable-view x="{{x}}" y="{{y}}" direction="all">text</movable-view>
</movable-area>
(五)cover-view覆蓋文字組件 cover-image
- cover-view組件能夠覆蓋在原生組件上狂票,從而實現(xiàn)原生組件上顯示一些文本內(nèi)容
- cover-view組件可以覆蓋map,video,canvas,camera這四種原生組件
<video>
<cover-view>
<cover-view>
<cover-image/>
</cover-view>
</cover-view>
</video>
cover-view支持設(shè)置overflow:scroll但不能動態(tài)更新
cover-view支持position:fixed
cover-view只支持基本的定位候齿,布局,文本樣式。不支持設(shè)置的單邊的border,background-image,shadow,overflow:visible