swiper标签

文档:https://developers.weixin.qq.com/miniprogram/dev/component/swiper.html

滑块视图容器。其中只可放置swiper-item组件,否则会导致未定义的行为。

属性类型默认值必填说明最低版本
indicator-dotsbooleanfalse是否显示面板指示点1.0.0
indicator-colorcolorrgba(0, 0, 0, .3)指示点颜色1.1.0
indicator-active-colorcolor#000000当前选中的指示点颜色1.1.0
autoplaybooleanfalse是否自动切换1.0.0
currentnumber0当前所在滑块的 index1.0.0
intervalnumber5000自动切换时间间隔1.0.0
durationnumber500滑动动画时长1.0.0
circularbooleanfalse是否采用衔接滑动1.0.0
verticalbooleanfalse滑动方向是否为纵向1.0.0
previous-marginstring"0px"前边距,可用于露出前一项的一小部分,接受 px 和 rpx 值1.9.0
next-marginstring"0px"后边距,可用于露出后一项的一小部分,接受 px 和 rpx 值1.9.0
snap-to-edgeboolean"false"当 swiper-item 的个数大于等于 2,关闭 circular 并且开启 previous-margin 或 next-margin 的时候,可以指定这个边距是否应用到第一个、最后一个元素2.12.1
display-multiple-itemsnumber1同时显示的滑块数量1.9.0
easing-functionstring"default"指定 swiper 切换缓动动画类型2.6.5
bindchangeeventhandle current 改变时会触发 change 事件,event.detail = {current, source}1.0.0
bindtransitioneventhandle swiper-item 的位置发生改变时会触发 transition 事件,event.detail = {dx: dx, dy: dy}2.4.3
bindanimationfinisheventhandle 动画结束时会触发 animationfinish 事件,event.detail 同上1.9.0

easing-function 的合法值

说明最低版本
default默认缓动函数
linear线性动画
easeInCubic缓入动画
easeOutCubic缓出动画
easeInOutCubic缓入缓出动画

实践

在app.json中新建新的页面:

  "pages": [
    "pages/demo/demo",
    "pages/index/index",
    "pages/news/news",
    "pages/logs/logs"
  ],

使用轮播:

<swiper class="">
  <swiper-item>
    <image src="http://qiniu.justinwuwei.cn/u=1320234356,1982981646&fm=11&gp=0.jpg"></image>
  </swiper-item>
  <swiper-item>
    <image src="http://qiniu.justinwuwei.cn/u=1320234356,1982981646&fm=11&gp=0.jpg"></image>
  </swiper-item>
  <swiper-item>
    <image src="http://qiniu.justinwuwei.cn/u=605429972,1351316434&fm=26&gp=0.jpg"></image>
  </swiper-item>
</swiper>



发现swiper标签默认对图片进行大小的限制,所以要用wxss指定其大小。

wxss:

.banner{
  width: 360rpx;
  border:1px solid red;
}
.banner image{
  width: 100%;
  height:360rpx;
}

(微信规定屏幕的宽度为750rpx)


一个基础轮播就好了。

指示点

属性类型默认值必填说明最低版本
indicator-dotsbooleanfalse是否显示面板指示点1.0.0
indicator-colorcolorrgba(0, 0, 0, .3)指示点颜色1.1.0
indicator-active-colorcolor#000000当前选中的指示点颜色1.1.0

循环播放

circularbooleanfalse是否采用衔接滑动1.0.0

自动播放

autoplaybooleanfalse是否自动切换1.0.0

前后间隔

previous-marginstring"0px"前边距,可用于露出前一项的一小部分,接受 px 和 rpx 值1.9.0
next-marginstring"0px"后边距,可用于露出后一项的一小部分,接受 px 和 rpx 值1.9.0


但是希望将轮播两边的间隔变成空白,需要对swiper-item进行样式设计。
wxml:

<swiper class="banner" 
indicator-dots 
autoplay
circular
previous-margin="20rpx"
next-margin="20rpx"
>
  <swiper-item class="bannerItem">
    <image src="http://qiniu.justinwuwei.cn/u=1320234356,1982981646&fm=11&gp=0.jpg"></image>
  </swiper-item >
  <swiper-item class="bannerItem">
    <image src="http://qiniu.justinwuwei.cn/u=1320234356,1982981646&fm=11&gp=0.jpg"></image>
  </swiper-item>
  <swiper-item class="bannerItem">
    <image src="http://qiniu.justinwuwei.cn/u=605429972,1351316434&fm=26&gp=0.jpg"></image>
  </swiper-item>
</swiper>

wxss:

.banner{
  width: 750rpx;
  border:1px solid red;
}
.banner image{
  width: 100%;
  height:360rpx;
}
.bannerItem{
  padding: 0 20rpx; /* 间距设置*/
  box-sizing: border-box;  /* 内填充*/
}
最后修改:2024 年 03 月 14 日
如果觉得我的文章对你有用,请随意赞赏