首页 > 技术文章 > Swiper

dzw159 2019-09-01 21:05 原文

1.wxml

<view>swiper组件</view>
<view class='section'>
  <view class='page-body'>
    <view class='page-section page-section-spacing swiper'>
      <swiper 
        indicator-dots="{{indicatorDots}}" 
        autoplay="{{autoplay}}" 
        interval="{{interval}}" 
        current="0" 
        duration="{{duration}}" 
        bindchange='change'
        bindanimationfinish="animationfinish">
          <block wx:for='{{background}}' wx:key='*this'>
            <swiper-item>
              <view class='swiper-item {{item}}'></view>
            </swiper-item>
          </block>
      </swiper>
    </view>
    <view class='page-section' style='marggin-top:40rpx;margin-bottom:20rpx;'>
      <view class='weui-cell weui-cell_after-title'>
        <view class='weui-cell weui-cell_switch'>
          <view class='weui-cell_bd'>指示点</view>
          <view class='weui-cell_ft'>
            <switch checked='{{indicatorDots}}' bindchange='changeIndicatorDots'></switch>
          </view>
        </view>
        <view class='weui-cell weui-cell_switch'>
          <view class='weui-cell_bd'>自动播放</view>
          <view class='weui-cell_ft'>
            <switch checked='{{autoplay}}' bindchange='changeAutoplay'></switch>
          </view>
        </view>
      </view>
    </view>
    <view class='page-section page-section-spacing'>
      <view class='page-section-title'>
        <text>幻灯片切换时长(ms)</text>
        <text class='info'>{{duration}}</text>
      </view>
      <slider bindchange='durationChange' calue='{{duration}}' min="500" max="2000"></slider>
      <view class='page-section-title'>
        <text>自动播放间隔时长(ms)</text>
        <text class='info'>{{interval}}</text>
      </view>
      <slider bindchange='intervalChange' value='{{interval}}' min="2000" max="10000"></slider>
    </view>

  </view>
</view>

2.js

Page({
  data:{
    background:[
      '.red',
      '.yellow',
      '.blue'
    ],
    indicatorDots:false,
    autoplay:false,
    vertical:false,
    interval:2000,
    duration:300
  },
  changeIndicatorDots:function(e){
    this.setData({
      indicatorDots:!this.data.indicatorDots
    })
  },
  changeAutoplay: function (e) {
    this.setData({
      autoplay: !this.data.autoplay
    })
  },
  intervalChange:function(e){
    this.setData({
      interval:e.detail.value
    })
  },
  durationChange:function(e){
    this.setData({
      duration:e.detail.value
    })
  }
})

3.wxss

.red{
  background: red;
  height:100%;
  width:100%;
}
.red:before{
  content: 'A';
  position: absolute;
  top: 50%;
  left:50%;
  transform: translate(-50%,-50%);
}

.yellow{
  background: yellow;
  height:100%;
  width:100%;
}
.yellow:before{
  content: 'B';
  position: absolute;
  top: 50%;
  left:50%;
  transform: translate(-50%,-50%);
}

.blue{
  background: blue;
  height:100%;
  width:100%;
}
.blue:before{
  content: 'C';
  position: absolute;
  top: 50%;
  left:50%;
  transform: translate(-50%,-50%);
}

.page-foot{
  margin-top:50rpx;
}

 

感谢:https://www.bilibili.com/video/av61418389/?p=32

 

推荐阅读