微信小程序轮播图实现,比Android 轮播图来说,显得轻松多了。
微信小程序提供swiper组件,官网api提供的swiper滑块视图容器。

属性名类型默认值说明
autoplayBooleanfalse是否自动切换
currentNumber0当前所在页面的 index
intervalNumber5000自动切换时间间隔
durationNumber500滑动动画时长
circularBooleanfalse是否采用衔接滑动
verticalBooleanfalse滑动方向是否为纵向
bindchange EventHandle

current 改变时会触发 change 事件,event.detail = {current: current, source: source}

从公共库v1.4.0开始,change事件返回detail中包含一个source字段,表示导致变更的原因,可能值如下:

  • autoplay 自动播放导致swiper变化;

  • touch 用户划动引起swiper变化;

  • 其他原因将用空字符串表示。

注意:其中只可放置<swiper-item/>组件,否则会导致未定义的行为。

swiper-item

仅可放置在<swiper/>组件中,宽高自动设置为100%。

index.wxss

swiper {

    height: 421.5rpx;

}

swiper-item image {

    width: 100%;

    height: 100%;

}

.swiper-container{

  position: relative;

}

.swiper-container .swiper{

  height: 300rpx;

}

.swiper-container .swiper .img{

  width: 100%;

  height: 100%;

}


index.js

Page({

  data: {

    swiperCurrent: 0,

    indicatorDots: true,

    autoplay: true,

    interval: 3000,

    duration: 800,

    circular:true,

    imgUrls: [

      'https://p3.pstatp.com/large/43700001e49d85d3ab52',

      'https://p3.pstatp.com/large/39f600038907bf3b9c96',

      'https://p3.pstatp.com/large/31fa0003ed7228adf421'

    ],

    links:[

      '../user/user',

      '../user/user',

      '../user/user'

    ]

    

  },

  //轮播图的切换事件

  swiperChange: function (e) {

    this.setData({

      swiperCurrent: e.detail.current

    })

  },

  //点击指示点切换

  chuangEvent: function (e) {

    this.setData({

      swiperCurrent: e.currentTarget.id

    })

  },

  //点击图片触发事件

  swipclick: function (e) {

    console.log(this.data.swiperCurrent);

    wx.switchTab({

      url: this.data.links[this.data.swiperCurrent]

    })

  }

})


index.wxml

<view class="swiper-container">

  <swiper indicator-dots="{{indicatorDots}}" autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" circular="{{duration}}" current="{{swiperCurrent}}" bindchange="swiperChange" class="swiper">

    <block wx:for="{{imgUrls}}" wx:key="unique">

      <swiper-item>

        <image src="{{item}}" class="img" bindtap="swipclick" />

      </swiper-item>

    </block>

  </swiper>

</view>


重要一点是图片的点击事件。bindtap="swipclick"

swipclick: function (e) {

    console.log(this.data.swiperCurrent);

    wx.switchTab({

      url: this.data.links[this.data.swiperCurrent]

    })

  }



【END】

往期热文推荐


程序员月薪多少才不会焦虑

成大事者不纠结,做好自己就好

为什么有的人工作多年还是老样子

你必须非常努力,才能看起来毫无费力


跟优秀的人一起共事,我们真的会越来越优秀



更多精彩内容,长按二维码,识别并关注!


Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐