这是效果图。将默认的圆点变成短横线,当前活动的短横线较长并切是红色背景。以及轮播高度随着图片高度自适应。
代码如下:
xml:
<swiper class='swiper-box' indicator-dots="{{indicatorDots}}"
autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}"
style='height:{{Height}}'> <block wx:for="{{ bannerUrls }}"> <swiper-item>
<view> <image class="slide-image" src="{{ item.url }}" bindload='imgHeight'
mode='widthFix'></image> </view> </swiper-item> </block> </swiper>
js:
Page({ data: { // 轮播 bannerUrls: [ { url:
'https://www.71big.com/heqing/zhaojingwang/common/images/banner1.jpg', linkUrl:
'' }, { url:
'https://www.71big.com/heqing/zhaojingwang/common/images/banner1.jpg', linkUrl:
'' }, { url:
'https://www.71big.com/heqing/zhaojingwang/common/images/banner1.jpg', linkUrl:
'' } ], indicatorDots: true, autoplay: true, interval: 3000, duration: 1000,
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 }) },} //轮播结束 //轮播高度自适应——获取图片高度
imgHeight: function (e) { var winWid = wx.getSystemInfoSync().windowWidth;
//获取当前屏幕的宽度 var imgh = e.detail.height;//图片高度 var imgw = e.detail.width;//图片宽度
var swiperH = winWid * imgh / imgw + "px" this.setData({ Height: swiperH//设置高度
}) } })
wxss:
/* 轮播 */ .slide-image{ width: 100%; } /* 轮播小点点 */ .swiper-box
.wx-swiper-dots.wx-swiper-dots-horizontal{ margin-bottom: 2rpx; } .swiper-box
.wx-swiper-dot{ width:20rpx; display: inline-flex; height: 5rpx; margin-left:
10rpx; justify-content:space-between; } .swiper-box .wx-swiper-dot::before{
content: ''; flex-grow: 1; background: rgba(255,255,255,0.8); border-radius:
0rpx } .swiper-box .wx-swiper-dot-active::before{ background: #ff3333; }
.swiper-box .wx-swiper-dot-active{ width:40rpx; }
热门工具 换一换