本文主要介绍了微信小程序基于 swiper 组件来实现一个 3D 轮播图效果。本文采用示例分析得形式,对微信小程序基于 swiper 组件的相关属性设置、事件响应以及操作技巧进行分析,可以很容易解决,希望对您的工作学习有所帮助,如果有用欢迎一键三连!

一、官方文档:

swiper (滑块视图容器):

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


二、效果图:

在这里插入图片描述


三、代码详解:

实现原理:主要利用了 circular 实现无限滚动,然后再加上前后间距(previous-marginnext-margin),再设置图片的层级和透明度就可以实现了,最后将图片及容器的高度设置好就差不多很漂亮了

wxml文件
<!--pages/home/index.wxml-->
<swiper 
	class="imageContainer" 
	bindchange="handleChange" 
	previous-margin="80rpx" 
	next-margin="80rpx" 
	circular 
	autoplay
>
  <block wx:for="{{3}}" wx:key="{{index}}">
    <swiper-item class="item">
      <image class="itemImg {{currentIndex == index ? 'active': ''}}" src="../../static/images/login.jpg"></image>
    </swiper-item>
  </block>
</swiper>

属性解释:

  1. handleChange:swiper的切换事件名

  2. previous-margin:与上一张图片的间距,前边距

  3. next-margin:与下一张图片的间距,后边距

  4. circular:是否衔接滑动,就是实现无限滚动

  5. autoplay:实现自动滚动

    以上几个属性官网都有介绍,不清楚的可以去看一下

wxss文件
/* pages/home/index.wxss */
.imageContainer {
  width: 100%;
  height: 500rpx;
}

.item {
  height: 500rpx;
}

.itemImg {
  position: absolute;
  width: 90%;
  height: 300rpx;
  border-radius: 15rpx;
  z-index: 5;
  opacity: 0.7;
  top: 13%;
  margin: 0 30rpx;
}

.active {
  opacity: 1;
  z-index: 10;
  height: 360rpx;
  top: 7%;
  transition: all .2s ease-in 0s;
}
js文件
// pages/home/index.js
Page({
  data: {
    currentIndex: 0
  },

  /* 这里实现控制中间凸显图片的样式 */
  handleChange: function (e) {
    this.setData({
      currentIndex: e.detail.current
    })
  },
})

具体参数根据自己的页面配置进行调整就可以了,相信实现出来肯定很漂亮。


四、demo源码:

上面三段代码直接 copy 到你的项目上就可以直接运行啦。


如果以上内容对你的学习工作有帮助,欢迎一键三连哦,如果觉得 Github 上的代码还不错,欢迎前往 Star

Logo

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

更多推荐