图片轮播是很经常用到的效果,小程度里默认提供了swiper组件,不过并没有左右切换的按钮/箭头,这里探讨一下如何实现该功能。
一、静态数据
先开发预览版本,数据全部用的js设定好的本地数据,实现方式如下:
<view class=swiper-car>
<swiper current={{carIndex}} indicator-dots="{{swiperCar.indicatorDots}}" autoplay="{{swiperCar.autoplay}}" interval="{{swiperCar.interval}}" duration="{{swiperCar.duration}}">
<block wx:for="{{carImgs}}" wx:key="cidx">
<swiper-item>
<image src="{{item}}" class="slide-image" />
</view>
</swiper-item>
</block>
</swiper>
<button class=swiper-left bindtap="bindPrev">
<image src=../../images/swiper-prev.png mode=widthFix></image>
</button>
<button class=swiper-right bindtap="bindNext">
<image src=../../images/swiper-next.png mode=widthFix></image>
</button>
</view>
wxss
.swiper-car {
height: 430rpx;
padding: 0 82rpx;
position: relative;
}
.swiper-car swiper {
height: 450rpx;
}
.swiper-car swiper-item {
font-size: 11pt;
}
.swiper-car swiper-item image {
height: 300rpx;
}
.swiper-car button {
width: 35rpx;
height: 65rpx;
padding: 0;
position: absolute;
top: 50%;
margin-top: -30rpx;
border: 0;
background: transparent;
}
.swiper-car button::after {
border: 0;
}
.swiper-car button image {
width: 35rpx;
}
.swiper-car .swiper-left {
left: 25rpx;
text-align: left;
}
.swiper-car .swiper-right {
right: 25rpx;
}
实现方式跟网页端的轮播类似。
二、动态数据
上一个例子数据是直接在js里给定,很奇怪的是更换成远程获取的数据,setData后发现图片竟然无法显示了,后面发现是swiper不能在嵌套里的关系(?),移出view就可以了,但是之前的样式无论如何都不起作用了。
刚好swiper上面有个heading,就将左右箭头放在heading里,再调整下位置
.heading {
margin-top: 40rpx;
padding: 15rpx;
background: #fff;
font-size: 11pt;
font-weight: bold;
color: #000;
position: relative;
}
.heading .arrow {
width: 30rpx;
height: 59rpx;
z-index: 99;
padding: 80px 20rpx;
}
.heading .swiper-left {
position: absolute;
left: 0;
top: 290rpx;
transform: translate(0, -50%);
cursor: pointer;
}
.heading .swiper-right {
position: absolute;
right: 0;
top: 290rpx;
transform: translate(0, -50%);
}
- 版权所有:奇站网络 转载请注明出处
- 厦门奇站网络科技有限公司,专业提供网站建设,响应式网站建设,小程序开发,系统定制开发。
- 软件开发咨询热线:吴小姐 13313868605