圖片輪播是很(hěn)經常用(yòng)到的效果,小(xiǎo)程度裏默認提供了swiper組件,不過并沒有(yǒu)左右切換的按鈕/箭頭,這裏探讨一下如何實現該功能(néng)。
一、靜态數據
先開發預覽版本,數據全部用(yòng)的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;
}
實現方式跟網頁(yè)端的輪播類似。
二、動态數據
上一個例子數據是直接在js裏給定,很(hěn)奇怪的是更換成遠(yuǎn)程獲取的數據,setData後發現圖片竟然無法顯示了,後面發現是swiper不能(néng)在嵌套裏的關系(?),移出view就可(kě)以了,但是之前的樣式無論如何都不起作(zuò)用(yòng)了。
剛好swiper上面有(yǒu)個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%);
}
- 版權所有(yǒu):奇站網絡 轉載請注明出處
- 廈門奇站網絡科(kē)技(jì )有(yǒu)限公(gōng)司,專業提供網站建設,響應式網站建設,小(xiǎo)程序開發,系統定制開發。
- 軟件開發咨詢熱線(xiàn):吳小(xiǎo)姐 13313868605