效果图:
移动端轮播通用代码,使用到swiper插件,为自己以后找代码方便,,,
直接上代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link href="https://cdn.bootcss.com/Swiper/4.5.1/css/swiper.min.css" rel="stylesheet">
<script src="https://cdn.bootcss.com/Swiper/4.5.1/js/swiper.min.js"></script>
<style>
#bannerbox {
width: 100%;
}
.swiper-slide {
width: 100%;
height: 200px;
}
.swiper-slide img {
width: 100%;
height: 100%;
}
.swiper-pagination {
position: absolute;
left: 0;
top: 240px;
width: 100%;
text-align: center !important;
font-size: .86956521rem;
}
.label-txt {
background-color: #CF1F1A;
color: #fff;
margin-right: .3125rem;
font-size: .6rem;
line-height: normal;
border-radius: .106667rem;
padding: 0 0.2rem;
font-weight: normal;
min-height: .8rem;
flex-shrink: 0;
box-sizing: border-box;
display: -webkit-inline-box;
display: -webkit-inline-flex;
display: -ms-inline-flexbox;
display: inline-flex;
-webkit-box-align: center;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
}
.swipe-text {
background: -webkit-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5));
background: -o-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5));
background: -moz-linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5));
background: linear-gradient(rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.5));
width: 100%;
height: 4.026667rem;
position: absolute;
bottom: 0;
left: 0;
padding: 0 .533333rem .933333rem;
box-sizing: border-box;
box-sizing: border-box;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-align: flex-end;
-webkit-align-items: flex-end;
-ms-flex-align: flex-end;
align-items: flex-end;
}
.swipe-text .text-inner {
line-height: 1.4;
font-weight: bold;
font-size: .853333rem;
color: #fff;
overflow: hidden;
text-align: left;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
word-break: break-all;
}
</style>
</head>
<body>
<div id="box">
<!-- 幻灯位 -->
<div id="bannerbox">
<div id="bannerNew" class="swiper-container">
<div class="swiper-wrapper">
<div class="swiper-slide" v-for="(item, index) in bannerNew">
<a class="swipe-a" :href="item | linkFilter">
<img :src="item.img_url" alt="">
<div class="swipe-text">
<div class="text-inner">
<span class="label-txt">{{item.title}}</span>
</div>
</div>
</a>
</div>
</div>
<div class="swiper-pagination">
</div>
</div>
</div>
</div>
<script type="text/javascript" src="https://wapcdn.thecover.cn/wap/4.1.0/js/tools/vue.min.js"></script>
<script>
new Vue({
el: '#box',
data () {
return {
bannerNew: []//bannerNew 轮播数据
}
},
created () {
this.getList()
},
methods: {
getList: function () {
this.bannerNew = [
{
img_url: "https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fp6.toutiaoimg.com%2Forigin%2Ftos-cn-i-qvj2lq49k0%2Faf61cea0f1bd47368e78d765cdebfb01%3Ffrom%3Dpc&refer=http%3A%2F%2Fp6.toutiaoimg.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1667033119&t=0e91e39bdf6fdcd9ede56e1f78817813",
id: 1,
title: "图文1",
linkUrl: 'https://www.baidu.com/s?ie=UTF-8&wd=%E7%99%BE%E5%BA%A6'
}, {
img_url: "https://img2.baidu.com/it/u=1435516885,1576597607&fm=253&fmt=auto&app=138&f=JPEG?w=800&h=500",
id: 2,
title: "图文2",
linkUrl: 'https://img1.baidu.com/it/u=3009731526,373851691&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1664557200&t=6183fbf75cf7fe71137567153ba8843a'
}, {
img_url: "https://img0.baidu.com/it/u=112981161,1185495649&fm=253&fmt=auto&app=138&f=JPEG?w=889&h=500",
id: 3,
title: "图文3",
linkUrl: 'https://img2.baidu.com/it/u=1114729443,1120710416&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1664557200&t=5f15370bfd6f227944c5f437801e3eb0'
},
]
this.$nextTick(() => {
this.banner()
}, 0);
},
// banner逻辑控制
banner: function () {
var mySwiper = new Swiper('#bannerNew', {
history: false,
speed: 400,
loop: this.bannerNew.length > 1, // 循环模式选项
autoplay: {
delay: 3000,
stopOnLastSlide: true,
disableOnInteraction: false,
},
// 如果需要分页器
pagination: {
el: '.swiper-pagination',
}
})
},
},
filters: {
linkFilter: function (item) {
console.log(item);
return item.linkUrl
},
}
})
</script>
</body>
</html>
- 这里使用的模拟数据,可以在getList方法中请求接口,获取真实数据,
- banner方法是轮播的控制方法,speed是切换所用时间,loop是循环,delay是循环所用时间
- 设置a标签可以点击跳转页面,filters方法是过滤数据,可以判断是否是我们需要的页面啊,是否可以点击啊啥的,