微信小程序图片自动播放功能

小程序图片自动轮换滚动功能

在看小程序源码时,发现该小程序用内置组件“swiper”实现图片滚动功能。经过测试效果很不错,因此记录下实现方法。

使用小程序组件swiper实现滑块视图容器(即图片自动播放,拖动等效果。)
下面先贴上源码

<swiper class="banner-swiper" autoplay="{{true}}" circular current="{{bannerCurrent}}" previous-margin="172rpx" next-margin="146rpx" interval="3000" duration="800">
      <block wx:for="{{indexObj.bannerList}}" wx:key="bannerList">
        <swiper-item>
          <image src="{{item.imgUrl}}" mode="aspectFill" class="defaultimg banner-image" data-id="{{item.id}}" data-url="{{item.url}}" data-class-type="{{item.classtype}}" data-act-id="{{item.act_id}}" catchtap="jumpDetailsBanner" />
        swiper-item>
      block>
    swiper>

属性功能如下

swipper被微信官方称为 滑块容器,且其中只可放置swiper-item组件,否则会导致未定义的行为。

属性 类型 默认值 必填 说明 最低版本
indicator-dots boolean false 是否显示面板指示点 1.0.0
indicator-color color rgba(0, 0, 0, .3) 指示点颜色 1.1.0
indicator-active-color color #000000 当前选中的指示点颜色 1.1.0
autoplay boolean false 是否自动切换 1.0.0
current number 0 当前所在滑块的 index 1.0.0
interval number 5000 自动切换时间间隔 1.0.0
duration number 500 滑动动画时长 1.0.0
circular boolean false 是否采用衔接滑动 1.0.0
vertical boolean false 滑动方向是否为纵向 1.0.0
previous-margin string “0px” 前边距,可用于露出前一项的一小部分,接受 px 和 rpx 值 1.9.0
next-margin string “0px” 后边距,可用于露出后一项的一小部分,接受 px 和 rpx 值 1.9.0
display-multiple-items number 1 同时显示的滑块数量 1.9.0
skip-hidden-item-layout boolean false 是否跳过未显示的滑块布局,设为 true 可优化复杂情况下的滑动性能,但会丢失隐藏状态滑块的布局信息 1.9.0
easing-function string “default” 指定 swiper 切换缓动动画类型 2.6.5
bindchange eventhandle current 改变时会触发 change 事件,event.detail = {current, source} 1.0.0
bindtransition eventhandle swiper-item 的位置发生改变时会触发 transition 事件,event.detail = {dx: dx, dy: dy} 2.4.3
bindanimationfinish eventhandle 动画结束时会触发 animationfinish 事件,event.detail 同上 1.9.0

easing-function 的合法值

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

tip: 如果在 bindchange 的事件回调函数中使用 setData 改变 current 值,则有可能导致 setData 被不停地调用,因而通常情况下请在改变 current 值前检测 source 字段来判断是否是由于用户触摸引起。

你可能感兴趣的:(微信小程序图片自动播放功能)