codecamp

支付宝小程序组件 滑块视图容器·swiper

滑块视图容器。其中,只可放置 swiper-item,否则会导致未定义的行为。swiper 高度可以通过设置 swiper item 元素高度来控制,swiper-item 的高度取决于第一个 swiper-item 的高度。

说明:

  • swiper 组件不可以放在地图上用,map 组件是由客户端创建的原生组件,原生组件的层级是最高的,所以页面中的其他组件无论设置 z-index 为多少,都无法在原生组件之上。
  • 去除 previous-margin 和 next-margin 的设置距离可删除 swiper 组件左右空白距离。
  • swiper 组件的首张图片与左边的间隔可以和组件中 item 的图片间隔保持一致,可以根据 previous-margin 设置一下前边距。
  • 调用 swiper 组件,swiper-item 嵌套 cover-view 会导致最后一个 swiper-item 后有很大的空白,建议使用 view 做嵌套。
  • swiper 可以有多个 swiper-item ,但是前台展示的只有一个。

扫码体验

示例代码

// 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 组件中,宽高自动设置为 100%。
  • swiper-item 不能添加事件,建议嵌套 view 绑定事件。

属性

属性名 类型 默认值 描述 最低版本
indicator-dots Boolean false 是否显示指示点。 -
indicator-color Color rgba(0, 0, 0, .3) 指示点颜色。 -
indicator-active-color Color #000 当前选中的指示点颜色。 -
active-class String - swiper-item 可见时的 class。 1.13.7
changing-class String - acceleration 设置为 {{true}} 时且处于滑动过程中,中间若干屏处于可见时的class。 1.13.7
autoplay Boolean false 是否自动切换。 -
current Number 0 当前页面的 index,可以增加左右箭头来控制轮播滚动。 -
duration Number 500(ms) 滑动动画时长。 -
interval Number 5000(ms) 自动切换时间间隔。 -
circular Boolean false 是否启用无限滑动。 -
vertical Boolean false 滑动方向是否为纵向。 -
previous-margin String 0px 前边距,单位 px,1.9.0 暂时只支持水平方向。 1.9.0
next-margin String 0px 后边距,单位 px,1.9.0 暂时只支持水平方向。 1.9.0
acceleration Boolean false 当开启时,会根据滑动速度,连续滑动多屏。 1.13.7
disable-programmatic-animation Boolean false 是否禁用代码变动触发 swiper 切换时使用动画。 1.13.7
onChange EventHandle - current 改变时会触发,event.detail = {current, isChanging},其中 isChanging 需 acceleration 设置为 {{true}} 时才有值,当连续滑动多屏时,中间若干屏触发 onChange 事件时 isChanging 为 true,最后一屏返回 false -
onTransition EventHandle - swiper 中 swiper-item 的位置发生改变时会触发 transition 事件。 1.15.0
onAnimationEnd EventHandle - 动画结束时会触发 animationEnd 事件,event.detail = {current, source},其中 source 的值有 autoplay 和 touch。 1.15.0
disable-touch Boolean false 是否禁止用户 touch 操作。 1.15.0
支付宝小程序组件 视图容器·view
支付宝小程序组件 可滚动视图区域·scroll-view
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }