2025-06-06 03:08:19 +08:00

105 lines
2.2 KiB
Vue

<template>
<view>
<nav-bar title="轮播图"></nav-bar>
<!-- 公共组件-每个页面必须引入 -->
<public-module></public-module>
<!-- banner -->
<view class="banner_swiper_box">
<swiper class="banner_swiper" :autoplay="true" :interval="3000" circular previous-margin="30px" next-margin="30px" :duration="1000" @change="onSwiperChange">
<swiper-item v-for="(item, index) of bannerList" :key="index">
<view class="banner_img" :class="{ active: swiperIndex == index }">
<image src="../../static/demo/1.jpg" mode="aspectFill" @click="onBanner(item)"></image>
</view>
</swiper-item>
</swiper>
</view>
</view>
</template>
<script>
export default {
data() {
return {
swiperIndex: 0,
bannerList: [1, 1, 1, 1]
};
},
//第一次加载
onLoad(e) {},
//页面显示
onShow() {},
//方法
methods: {
// 轮播图变化
onSwiperChange(e) {
this.swiperIndex = e.detail.current;
},
// 轮播图点击
onBanner(item) {
if (item.jumpType == 1201) {
// #ifdef H5
window.open(item.jumpRecord.webViewUrl);
// #endif
// #ifndef H5
this.$store.commit("setWebViewUrl", item.jumpRecord.webViewUrl);
uni.navigateTo({
url: '/pages/home/webView'
});
// #endif
} else if (item.jumpType == 1301) {
this.videoUrl = item.jumpRecord.videoUrl;
this.videoShow = true;
}
},
onPageJump(url) {
uni.navigateTo({
url: url
});
}
},
//页面隐藏
onHide() {},
//页面卸载
onUnload() {},
//页面下来刷新
onPullDownRefresh() {},
//页面上拉触底
onReachBottom() {},
//用户点击分享
onShareAppMessage(e) {
return this.wxShare();
}
};
</script>
<style lang="scss" scoped>
@import '@/style/mixin.scss';
.banner_swiper_box {
padding-top: 15upx;
background-color: #fff;
.banner_swiper {
height: 315upx;
swiper-item {
box-sizing: border-box;
display: flex;
align-items: center;
.banner_img {
width: 100%;
height: 100%;
transform: scale(0.9);
transition: all 0.4s;
&.active {
transform: scale(1);
}
image {
width: 100%;
height: 100%;
box-shadow: 0upx 20upx 30upx 0upx rgba(0, 0, 0, 0.1);
border-radius: 20upx;
}
}
}
}
}
</style>