支付寶小程序組件 滑塊視圖容器·swiper

2020-09-18 10:47 更新

滑塊視圖容器。其中,只可放置 swiper-item,否則會(huì)導(dǎo)致未定義的行為。swiper 高度可以通過(guò)設(shè)置 swiper item 元素高度來(lái)控制,swiper-item 的高度取決于第一個(gè) swiper-item 的高度。

說(shuō)明:

  • swiper 組件不可以放在地圖上用,map 組件是由客戶端創(chuàng)建的原生組件,原生組件的層級(jí)是最高的,所以頁(yè)面中的其他組件無(wú)論設(shè)置 z-index 為多少,都無(wú)法在原生組件之上。
  • 去除 previous-margin 和 next-margin 的設(shè)置距離可刪除 swiper 組件左右空白距離。
  • swiper 組件的首張圖片與左邊的間隔可以和組件中 item 的圖片間隔保持一致,可以根據(jù) previous-margin 設(shè)置一下前邊距。
  • 調(diào)用 swiper 組件,swiper-item 嵌套 cover-view 會(huì)導(dǎo)致最后一個(gè) swiper-item 后有很大的空白,建議使用 view 做嵌套。
  • swiper 可以有多個(gè) swiper-item ,但是前臺(tái)展示的只有一個(gè)。

掃碼體驗(yàn)

示例代碼

// API-DEMO page/component/swiper.json
{
  "defaultTitle": "Swiper",
  "pullRefresh": false,
  "allowsBounceVertical": false
}
<!-- API-DEMO page/component/swiper.axml-->
<view class="page">
  <view class="page-description">滑塊視圖容器</view>
  <view class="page-section">
    <view class="page-section-demo">
      <swiper 
        style="height:150px"
        class="demo-swiper"
        previousMargin="10px"
        nextMargin="10px"
        indicator-dots="{{indicatorDots}}"
        autoplay="{{autoplay}}"
        vertical="{{vertical}}"
        interval="{{interval}}"
        circular="{{circular}}"
      >
        <block a:for="{{background}}">
          <swiper-item key="swiper-item-{{index}}">
            <view class="swiper-item bc_{{item}}"></view>
          </swiper-item>
        </block>
      </swiper>
      <view class="margin-t">
        <slider onChange="intervalChange" value="{{interval}}" show-value min="500" max="2000"/>
        <view>interval</view>
      </view>
    </view>
    <view class="page-section-btns">
      <view onTap="changeIndicatorDots">indicator-dots</view>
      <view onTap="changeAutoplay">autoplay</view>
      <view onTap="changeVertical">vertical</view>
    </view>
    <view class="page-section-btns">
      <view onTap="changeCircular">circular</view>
    </view>
  </view>
</view>
// API-DEMO page/component/swiper.js
Page({
  data: {
    background: ['blue', 'red', 'yellow'],
    indicatorDots: true,
    autoplay: false,
    vertical: false,
    interval: 1000,
    circular: false,
  },
  onLoad() {
  },
  changeIndicatorDots(e) {
    this.setData({
      indicatorDots: !this.data.indicatorDots,
    });
  },
  changeVertical() {
    this.setData({
      vertical: !this.data.vertical,
    });
  },
  changeCircular(e) {
    this.setData({
      circular: !this.data.circular,
    });
  },
  changeAutoplay(e) {
    this.setData({
      autoplay: !this.data.autoplay,
    });
  },
  intervalChange(e) {
    this.setData({
      interval: e.detail.value,
    });
  },
});
/* API-DEMO page/component/swiper.acss */
.swiper-item{
  display: block;
  height: 150px;
  margin:10px;
  background-color:#e0ffff;
}
.margin-t {
  margin-top: 24px;
}

swiper-item

  • 僅可放置在 swiper 組件中,寬高自動(dòng)設(shè)置為 100%。
  • swiper-item 不能添加事件,建議嵌套 view 綁定事件。

屬性

屬性名 類(lèi)型 默認(rèn)值 描述 最低版本
indicator-dots Boolean false 是否顯示指示點(diǎn)。 -
indicator-color Color rgba(0, 0, 0, .3) 指示點(diǎn)顏色。 -
indicator-active-color Color #000 當(dāng)前選中的指示點(diǎn)顏色。 -
active-class String - swiper-item 可見(jiàn)時(shí)的 class。 1.13.7
changing-class String - acceleration 設(shè)置為 {{true}} 時(shí)且處于滑動(dòng)過(guò)程中,中間若干屏處于可見(jiàn)時(shí)的class。 1.13.7
autoplay Boolean false 是否自動(dòng)切換。 -
current Number 0 當(dāng)前頁(yè)面的 index,可以增加左右箭頭來(lái)控制輪播滾動(dòng)。 -
duration Number 500(ms) 滑動(dòng)動(dòng)畫(huà)時(shí)長(zhǎng)。 -
interval Number 5000(ms) 自動(dòng)切換時(shí)間間隔。 -
circular Boolean false 是否啟用無(wú)限滑動(dòng)。 -
vertical Boolean false 滑動(dòng)方向是否為縱向。 -
previous-margin String 0px 前邊距,單位 px,1.9.0 暫時(shí)只支持水平方向。 1.9.0
next-margin String 0px 后邊距,單位 px,1.9.0 暫時(shí)只支持水平方向。 1.9.0
acceleration Boolean false 當(dāng)開(kāi)啟時(shí),會(huì)根據(jù)滑動(dòng)速度,連續(xù)滑動(dòng)多屏。 1.13.7
disable-programmatic-animation Boolean false 是否禁用代碼變動(dòng)觸發(fā) swiper 切換時(shí)使用動(dòng)畫(huà)。 1.13.7
onChange EventHandle - current 改變時(shí)會(huì)觸發(fā),event.detail = {current, isChanging},其中 isChanging 需 acceleration 設(shè)置為 {{true}} 時(shí)才有值,當(dāng)連續(xù)滑動(dòng)多屏?xí)r,中間若干屏觸發(fā) onChange 事件時(shí) isChanging 為 true,最后一屏返回 false -
onTransition EventHandle - swiper 中 swiper-item 的位置發(fā)生改變時(shí)會(huì)觸發(fā) transition 事件。 1.15.0
onAnimationEnd EventHandle - 動(dòng)畫(huà)結(jié)束時(shí)會(huì)觸發(fā) animationEnd 事件,event.detail = {current, source},其中 source 的值有 autoplay 和 touch。 1.15.0
disable-touch Boolean false 是否禁止用戶 touch 操作。 1.15.0
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)