小程序自定义轮播图样式以下是各案例,仅供大家参考。
效果展示:
index.wxml 代码:
<view>
<!-- 轮播 -->
<view>
<swiper indicator-dots="{{indicatorDots}}"
autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" circular="{{circular}}" bindchange="swiperChange">
<block wx:for="{{banner}}">
<swiper-item>
<view>
<image src="{{item.ad_img}}" mode="scaleToFill"></image>
<view>
<view>{{item.ad_name}}</view>
</view>
</view>
</swiper-item>
</block>
</swiper>
<view>
<block wx:for="{{banner}}" wx:key="unique">
<view class="dot{{index == swiperCurrent ? ' active' : ''}}"></view>
</block>
</view>
</view>
<!-- 轮播 -->
</view>
index.js 代码:
const app = getApp()
Page({
data: {
now:'',
banner: [],
circular: true,
indicatorDots: false,
autoplay: true,
interval: 4000,
duration: 800,
swiperCurrent: 0,
},
swiperChange(e) {
let current = e.detail.current;
// console.log(current, '轮播图')
let that = this;
that.setData({
swiperCurrent: current,
})
},
//事件处理函数
bindViewTap: function() {
},
onLoad: function () {
this.getBanner(); //获取轮播图
},
// 轮播
getBanner:function(){
var that=this
wx.request({
url: app.AppUrl +'/getBanner',
success(res) {
that.setData({
banner: res.data.res_banner,
})
}
})
},
})
index.wxss 代码:
.lunbo{ width: 96%; margin-left: 2%; height: 350rpx; background: #000; float: left; border-radius: 15rpx; overflow: hidden;position: relative;}
.lunbo swiper{width: 100%; height: 350rpx; }
.lunbo image{ width: 100%; height: 350rpx; display: block; border-radius: 15rpx;}
.lunbo .name{background: linear-gradient(transparent,rgba(0,0,0,.1) 20%,rgba(0,0,0,.2) 35%,rgba(0,0,0,.3) 65%,rgba(0,0,0,.4));
width: 750rpx;
position: absolute;
bottom: -2rpx;
left: 0px;}
.lunbo .name view{
width: 500rpx;
color: #fff;
padding-left: 20rpx;
padding-bottom: 10rpx;
padding-top: 10rpx;
font-size: 30rpx;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
text-overflow: ellipsis;
-webkit-line-clamp: 1;
}
.dots{
position: absolute;
right: 0;
bottom: 20rpx;
display: flex;
}
.dots .dot{
margin: 0 8rpx;
width: 8rpx;
height: 8rpx;
background:rgba(255,255,255,0.5);
border-radius: 8rpx;
transition: all .6s;
}
.dots .dot.active{
width: 24rpx;
background: #fff;
}