day05-微信小程序基礎(chǔ)(常用組件)

view

視圖容器。

屬性名 類(lèi)型 默認(rèn)值 說(shuō)明 最低版本
hover-class String none 指定按下去的樣式類(lèi)税稼。當(dāng) hover-class="none" 時(shí)烦秩,沒(méi)有點(diǎn)擊態(tài)效果
hover-stop-propagation Boolean false 指定是否阻止本節(jié)點(diǎn)的祖先節(jié)點(diǎn)出現(xiàn)點(diǎn)擊態(tài) 1.5.0
hover-start-time Number 50 按住后多久出現(xiàn)點(diǎn)擊態(tài),單位毫秒
hover-stay-time Number 400 手指松開(kāi)后點(diǎn)擊態(tài)保留時(shí)間郎仆,單位毫秒
aria-role String 無(wú)障礙訪(fǎng)問(wèn)只祠,(角色)標(biāo)識(shí)元素的作用 2.5.0
aria-label String 無(wú)障礙訪(fǎng)問(wèn),(屬性)元素的額外描述 2.5.0

示例:

在開(kāi)發(fā)者工具中預(yù)覽效果

<view class="section">
  <view class="section__title">flex-direction: row</view>
  <view class="flex-wrp" style="flex-direction:row;">
    <view class="flex-item bc_green">1</view>
    <view class="flex-item bc_red">2</view>
    <view class="flex-item bc_blue">3</view>
  </view>
</view>
<view class="section">
  <view class="section__title">flex-direction: column</view>
  <view class="flex-wrp" style="height: 300px;flex-direction:column;">
    <view class="flex-item bc_green">1</view>
    <view class="flex-item bc_red">2</view>
    <view class="flex-item bc_blue">3</view>
  </view>
</view>

image.png

視圖容器扰肌。相當(dāng)于是傳統(tǒng)網(wǎng)頁(yè)中的 div 抛寝,可以用來(lái)存放任何的其他子元素。相關(guān)的屬性請(qǐng)參
考:https://developers.weixin.qq.com/miniprogram/dev/component/view.html


scroll-view:

有時(shí)候我們的一些視圖在手機(jī)指定的寬度和高度不夠存放曙旭。那么可以放在 scroll-view 中盗舰。
設(shè)置橫向滾動(dòng):

  1. 給 scroll-view 添加 scroll-x="true" 屬性。
  2. 給 scroll-view 添加 white-space:nowrap; 樣式夷狰。
  3. 給 scroll-view 中的子元素設(shè)置為 display:inline-block; 岭皂。
    示例代碼如下:
    index.wxml代碼:
<scroll-view class='scroll-x-view' scroll-x>
<view class='scroll-view-item bg_red'></view>
<view class='scroll-view-item bg_blue'></view>
<view class='scroll-view-item bg_green'></view>
<view class='scroll-view-item bg_yellow'></view>
</scroll-view>

index.wxss代碼:

.scroll-x-view{
width: 100%;
height: 100px;
background: gray;
white-space: nowrap;
}
.scroll-x-view .scroll-view-item{
width: 200px;
height: 100px;
}
.bg_red{
background: red;
}
.bg_blue{
background: blue;
}
.bg_green{
background: green;
}
.bg_yellow{
background: yellow;
}
設(shè)置豎向滾動(dòng):
  1. 給 scroll-view 添加 scroll-y="true" 屬性郊霎。
  2. 給 scroll-view 設(shè)置高度沼头。
    wxml 和 wxss 示例代碼如下:
<scroll-view class='scroll-x-view' scroll-y>
<view class='scroll-view-item bg_red'></view>
<view class='scroll-view-item bg_blue'></view>
<view class='scroll-view-item bg_green'></view>
<view class='scroll-view-item bg_yellow'></view>
</scroll-view>
.scroll-x-view{
width: 100%;
height: 200px;
background: gray;
}
.scroll-x-view .scroll-view-item{
width: 100%;
height: 100px;
}
.bg_red{
background: red;
}
.bg_blue{
background: blue;
}
.bg_green{
background: green;
}
.bg_yellow{
background: yellow;
}

scrolltoupper和scrolltolower事件:

鼠標(biāo)滾動(dòng)到距離頂部或者左邊、鼠標(biāo)滾動(dòng)到底部或者右邊多少距離的時(shí)候會(huì)執(zhí)行這個(gè)事件书劝。默認(rèn)的間隔是 50 像
素进倍。示例代碼如下:

<scroll-view class='scroll-x-view' scroll-y bindscrolltoupper="scrollToUpper">
<view style="height:1000px;">
</view>
</scroll-view>
Page({
scrollToUpper: function(event){
console.log(event);
}
});

bindscroll事件:
只要 scroll-view 發(fā)生了滾動(dòng),就會(huì)執(zhí)行這個(gè)事件购对。

<scroll-view class='scroll-x-view' scroll-y bindscrolltoupper="scrollEvent">
<view style="height:1000px;">
</view>
</scroll-view>
Page({
scrollEvent: function(event){
console.log(event);
}
});
swiper組件

在 app 里面猾昆,輪播圖( banner )是非常常見(jiàn)的,因此小程序?qū)iT(mén)針對(duì)這個(gè)出了一個(gè)組件就是 swiper 骡苞。

swiper組件基本用法:

swiper 就是一個(gè)包裹輪播圖的容器垂蜗,里面的子元素必須是 swiper-item 組件。 swiper 可以自動(dòng)的輪播子元素解幽,并且
天生就帶有指示點(diǎn)贴见,還可以使用手指左右滑動(dòng)。下面用代碼的方式來(lái)演示一下:

<swiper class='swiper' style='width:NaNrpx;height:NaNrpx;' autoplay indicator-dots indicator-color='blue' indicator-a
ctive-color='red'>
<swiper-item>
<image src='https://static-image.xfz.cn/1539770831_872.jpg'></image>
</swiper-item>
<swiper-item>
<image src='https://static-image.xfz.cn/1541147489_121.jpeg'></image>
</swiper-item>
</swiper>
.swiper image{
width: 100%;
height: 100%;
}
Page({
data:{},
onLoad: function (options) {
var systemInfo = wx.getSystemInfoSync();
var windowWidth = systemInfo.windowWidth;
var width = windowWidth;
var height = width/4;
// 根據(jù)圖片的寬高比例設(shè)置swiper的寬高
this.setData({
width: width,
height: height
});
},
});
image.png

wiper

滑塊視圖容器躲株。

屬性名 類(lèi)型 默認(rèn)值 說(shuō)明 最低版本
indicator-dots Boolean false 是否顯示面板指示點(diǎn)
indicator-color Color rgba(0, 0, 0, .3) 指示點(diǎn)顏色 1.1.0
indicator-active-color Color #000000 當(dāng)前選中的指示點(diǎn)顏色 1.1.0
autoplay Boolean false 是否自動(dòng)切換
current Number 0 當(dāng)前所在滑塊的 index
current-item-id String "" 當(dāng)前所在滑塊的 item-id 片部,不能與 current 被同時(shí)指定 1.9.0
interval Number 5000 自動(dòng)切換時(shí)間間隔
duration Number 500 滑動(dòng)動(dòng)畫(huà)時(shí)長(zhǎng)
circular Boolean false 是否采用銜接滑動(dòng)
vertical Boolean false 滑動(dòng)方向是否為縱向
previous-margin String "0px" 前邊距,可用于露出前一項(xiàng)的一小部分霜定,接受 px 和 rpx 值 1.9.0
next-margin String "0px" 后邊距档悠,可用于露出后一項(xiàng)的一小部分廊鸥,接受 px 和 rpx 值 1.9.0
display-multiple-items Number 1 同時(shí)顯示的滑塊數(shù)量 1.9.0
skip-hidden-item-layout Boolean false 是否跳過(guò)未顯示的滑塊布局,設(shè)為 true 可優(yōu)化復(fù)雜情況下的滑動(dòng)性能辖所,但會(huì)丟失隱藏狀態(tài)滑塊的布局信息 1.9.0
bindchange EventHandle current 改變時(shí)會(huì)觸發(fā) change 事件惰说,event.detail = {current: current, source: source}
bindtransition EventHandle swiper-item 的位置發(fā)生改變時(shí)會(huì)觸發(fā) transition 事件,event.detail = {dx: dx, dy: dy} 2.4.3
bindanimationfinish EventHandle 動(dòng)畫(huà)結(jié)束時(shí)會(huì)觸發(fā) animationfinish 事件缘回,event.detail 同上 1.9.0

1.4.0 開(kāi)始助被,change事件返回detail中包含一個(gè)source字段,表示導(dǎo)致變更的原因切诀,可能值如下:

  • autoplay 自動(dòng)播放導(dǎo)致swiper變化揩环;
  • touch 用戶(hù)劃動(dòng)引起swiper變化;
  • 其他原因?qū)⒂每兆址硎尽?/li>

注意:其中只可放置<swiper-item/>組件幅虑,否則會(huì)導(dǎo)致未定義的行為丰滑。

swiper-item

僅可放置在<swiper>組件中,寬高自動(dòng)設(shè)置為100%倒庵。

屬性名 類(lèi)型 默認(rèn)值 說(shuō)明 最低版本
item-id String "" 該 swiper-item 的標(biāo)識(shí)符 1.9.0

示例代碼:

在開(kāi)發(fā)者工具中預(yù)覽效果

<swiper
  indicator-dots="{{indicatorDots}}"
  autoplay="{{autoplay}}"
  interval="{{interval}}"
  duration="{{duration}}"
>
  <block wx:for="{{imgUrls}}">
    <swiper-item>
      <image src="{{item}}" class="slide-image" width="355" height="150" />
    </swiper-item>
  </block>
</swiper>
<button bindtap="changeIndicatorDots">indicator-dots</button>
<button bindtap="changeAutoplay">autoplay</button>
<slider bindchange="intervalChange" show-value min="500" max="2000" />
interval
<slider bindchange="durationChange" show-value min="1000" max="10000" />
duration

Page({
  data: {
    imgUrls: [
      'http://img02.tooopen.com/images/20150928/tooopen_sy_143912755726.jpg',
      'http://img06.tooopen.com/images/20160818/tooopen_sy_175866434296.jpg',
      'http://img06.tooopen.com/images/20160818/tooopen_sy_175833047715.jpg'
    ],
    indicatorDots: false,
    autoplay: false,
    interval: 5000,
    duration: 1000
  },
  changeIndicatorDots(e) {
    this.setData({
      indicatorDots: !this.data.indicatorDots
    })
  },
  changeAutoplay(e) {
    this.setData({
      autoplay: !this.data.autoplay
    })
  },
  intervalChange(e) {
    this.setData({
      interval: e.detail.value
    })
  },
  durationChange(e) {
    this.setData({
      duration: e.detail.value
    })
  }
})
movable-view

基礎(chǔ)庫(kù) 1.2.0 開(kāi)始支持褒墨,低版本需做兼容處理

可移動(dòng)的視圖容器擎宝,在頁(yè)面中可以拖拽滑動(dòng)

屬性名 類(lèi)型 默認(rèn)值 說(shuō)明 最低版本
direction String none movable-view的移動(dòng)方向郁妈,屬性值有all、vertical绍申、horizontal噩咪、none
inertia Boolean false movable-view是否帶有慣性
out-of-bounds Boolean false 超過(guò)可移動(dòng)區(qū)域后,movable-view是否還可以移動(dòng)
x Number / String 定義x軸方向的偏移极阅,如果x的值不在可移動(dòng)范圍內(nèi)胃碾,會(huì)自動(dòng)移動(dòng)到可移動(dòng)范圍;改變x的值會(huì)觸發(fā)動(dòng)畫(huà)
y Number / String 定義y軸方向的偏移筋搏,如果y的值不在可移動(dòng)范圍內(nèi)仆百,會(huì)自動(dòng)移動(dòng)到可移動(dòng)范圍;改變y的值會(huì)觸發(fā)動(dòng)畫(huà)
damping Number 20 阻尼系數(shù)奔脐,用于控制x或y改變時(shí)的動(dòng)畫(huà)和過(guò)界回彈的動(dòng)畫(huà)俄周,值越大移動(dòng)越快
friction Number 2 摩擦系數(shù),用于控制慣性滑動(dòng)的動(dòng)畫(huà)髓迎,值越大摩擦力越大峦朗,滑動(dòng)越快停止;必須大于0竖般,否則會(huì)被設(shè)置成默認(rèn)值
disabled Boolean false 是否禁用 1.9.90
scale Boolean false 是否支持雙指縮放甚垦,默認(rèn)縮放手勢(shì)生效區(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
animation Boolean true 是否使用動(dòng)畫(huà) 2.1.0
bindchange EventHandle 拖動(dòng)過(guò)程中觸發(fā)的事件,event.detail = {x: x, y: y, source: source}艰亮,其中source表示產(chǎn)生移動(dòng)的原因闭翩,值可為touch(拖動(dòng))、touch-out-of-bounds(超出移動(dòng)范圍)迄埃、out-of-bounds(超出移動(dòng)范圍后的回彈)疗韵、friction(慣性)和空字符串(setData) 1.9.90
bindscale EventHandle 縮放過(guò)程中觸發(fā)的事件,event.detail = {x: x, y: y, scale: scale}侄非,其中x和y字段在2.1.0之后開(kāi)始支持返回 1.9.90

除了基本事件外蕉汪,movable-view提供了兩個(gè)特殊事件

類(lèi)型 觸發(fā)條件 最低版本
htouchmove 初次手指觸摸后移動(dòng)為橫向的移動(dòng),如果catch此事件逞怨,則意味著touchmove事件也被catch 1.9.90
vtouchmove 初次手指觸摸后移動(dòng)為縱向的移動(dòng)者疤,如果catch此事件,則意味著touchmove事件也被catch 1.9.90

movable-view 必須設(shè)置width和height屬性叠赦,不設(shè)置默認(rèn)為10px

movable-view 默認(rèn)為絕對(duì)定位驹马,top和left屬性為0px

注意:movable-view必須在<movable-area/>組件中,并且必須是直接子節(jié)點(diǎn)除秀,否則不能移動(dòng)糯累。

movable-area

基礎(chǔ)庫(kù) 1.2.0 開(kāi)始支持,低版本需做兼容處理册踩。

movable-view 的可移動(dòng)區(qū)域

屬性名 類(lèi)型 默認(rèn)值 說(shuō)明 最低版本
scale-area Boolean false 當(dāng)里面的movable-view設(shè)置為支持雙指縮放時(shí)泳姐,設(shè)置此值可將縮放手勢(shì)生效區(qū)域修改為整個(gè)movable-area 1.9.90

注意:movable-area 必須設(shè)置width和height屬性,不設(shè)置默認(rèn)為10px

當(dāng)movable-view小于movable-area時(shí)暂吉,movable-view的移動(dòng)范圍是在movable-area內(nèi)胖秒;

當(dāng)movable-view大于movable-area時(shí),movable-view的移動(dòng)范圍必須包含movable-area(x軸方向和y軸方向分開(kāi)考慮)

示例代碼:

在開(kāi)發(fā)者工具中預(yù)覽效果

<view class="section">
  <view class="section__title">movable-view區(qū)域小于movable-area</view>
  <movable-area style="height: 200px; width: 200px; background: red;">
    <movable-view
      style="height: 50px; width: 50px; background: blue;"
      x="{{x}}"
      y="{{y}}"
      direction="all"
    ></movable-view>
  </movable-area>
  <view class="btn-area">
    <button size="mini" bindtap="tap">click me to move to (30px, 30px)</button>
  </view>
  <view class="section__title">movable-view區(qū)域大于movable-area</view>
  <movable-area style="height: 100px; width: 100px; background: red;">
    <movable-view
      style="height: 200px; width: 200px; background: blue;"
      direction="all"
    ></movable-view>
  </movable-area>
  <view class="section__title">可放縮</view>
  <movable-area
    style="height: 200px; width: 200px; background: red;"
    scale-area
  >
    <movable-view
      style="height: 50px; width: 50px; background: blue;"
      direction="all"
      bindchange="onChange"
      bindscale="onScale"
      scale
      scale-min="0.5"
      scale-max="4"
      scale-value="2"
    ></movable-view>
  </movable-area>
</view>

Page({
  data: {
    x: 0,
    y: 0
  },
  tap(e) {
    this.setData({
      x: 30,
      y: 30
    })
  },
  onChange(e) {
    console.log(e.detail)
  },
  onScale(e) {
    console.log(e.detail)
  }
})
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末借笙,一起剝皮案震驚了整個(gè)濱河市扒怖,隨后出現(xiàn)的幾起案子较锡,更是在濱河造成了極大的恐慌业稼,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚂蕴,死亡現(xiàn)場(chǎng)離奇詭異低散,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)骡楼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)熔号,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人鸟整,你說(shuō)我怎么就攤上這事引镊。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵弟头,是天一觀(guān)的道長(zhǎng)吩抓。 經(jīng)常有香客問(wèn)我,道長(zhǎng)赴恨,這世上最難降的妖魔是什么疹娶? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮伦连,結(jié)果婚禮上雨饺,老公的妹妹穿的比我還像新娘。我一直安慰自己惑淳,他們只是感情好额港,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著歧焦,像睡著了一般锹安。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上倚舀,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天叹哭,我揣著相機(jī)與錄音,去河邊找鬼痕貌。 笑死风罩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的舵稠。 我是一名探鬼主播超升,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼哺徊!你這毒婦竟也來(lái)了室琢?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤落追,失蹤者是張志新(化名)和其女友劉穎盈滴,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體轿钠,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡巢钓,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了疗垛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片症汹。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖贷腕,靈堂內(nèi)的尸體忽然破棺而出背镇,到底是詐尸還是另有隱情咬展,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布瞒斩,位于F島的核電站挚赊,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏济瓢。R本人自食惡果不足惜荠割,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望旺矾。 院中可真熱鬧蔑鹦,春花似錦、人聲如沸箕宙。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)柬帕。三九已至哟忍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陷寝,已是汗流浹背锅很。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留凤跑,地道東北人爆安。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像仔引,于是被迫代替她去往敵國(guó)和親扔仓。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容