按照正常的逻辑来看,效果应该是这样
但是,,,实际效果是这样
和原图有这巨大的差距enmmmm
下面是代码
10条数据,一个页面显示8个,多的图标在另一个页显示
<template>
<div class="icons">
<swiper>
<swiper-slide v-for="(page, index) in pages" :key="index">
<div class="icon" v-for="(item,index) in page" :key="index">
<div class="icon-img">
<img class="icon-imgs" :src="item.imgUrl" />
</div>
<p class="icon-desc">{{item.desc}}</p>
</div>
</swiper-slide>
</swiper>
</div>
</template>
<script>
export default {
data () {
return {
IconsList: [
{
id: '1',
imgUrl: 'http://img1.qunarzz.com/piao/fusion/1803/95/f3dd6c383aeb3b02.png',
desc: '景点门票'
},
{
id: '2',
imgUrl: 'http://img1.qunarzz.com/piao/fusion/1804/5a/13ceb38dcf262f02.png',
desc: '一日游'
},
{
id: '3',
imgUrl: 'http://img1.qunarzz.com/piao/fusion/1804/ff/fdf170ee89594b02.png',
desc: '北京必游'
},
{
id: '4',
imgUrl: 'http://img1.qunarzz.com/piao/fusion/1803/47/c2b659e048b11602.png',
desc: '溜娃儿'
},
{
id: '5',
imgUrl: 'http://mp-piao-admincp.qunarzz.com/mp_piao_admin_mp_piao_admin/admin/20191/0334cf5430b9b5505fd79e2b8d7e8670.png',
desc: '爬长城'
},
{
id: '6',
imgUrl: 'http://img1.qunarzz.com/piao/fusion/1803/6c/9e54a8540fee0102.png',
desc: '故宫'
},
{
id: '7',
imgUrl: 'http://img1.qunarzz.com/piao/fusion/1803/e3/67df61427c8e1302.png',
desc: '茶馆相声'
},
{
id: '8',
imgUrl: 'http://mp-piao-admincp.qunarzz.com/mp_piao_admin_mp_piao_admin/admin/20192/23e0e0f2e3ab69f6644e5625b31c35a1.png',
desc: '女神节特惠'
},
{
id: '9',
imgUrl: 'http://img1.qunarzz.com/piao/fusion/1803/ab/6f7d6e44963c9302.png',
desc: '泡温泉'
},
{
id: '10',
imgUrl: 'http://img1.qunarzz.com/piao/fusion/1803/76/eb88861d78fb9902.png',
desc: '动植物园'
}
]
}
},
computed: {
pages () {
const pages = []
this.IconsList.forEach((item, index) => {
const page = Math.floor(index / 8)
if (!pages[page]) {
pages[page] = []
} else {
pages[page].push(item)
}
})
return pages
}
}
}
</script>
<style scoped>
.icons {
overflow: hidden;
height: 0;
padding-bottom: 50%;
}
.icons .swiper-slide {
height: 0;
padding-bottom: 50%;
}
.icon {
position: relative;
overflow: hidden;
width: 25%;
height: 0;
float:left;
padding-bottom: 25%;
}
.icon-img {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 22px;
}
.icon-imgs {
height: 100%;
display: block;
margin: 0 auto;
}
.icon-desc {
position: absolute;
left: 0;
right: 0;
bottom: 0;
height: 22px;
line-height: 22px;
color: #333;
text-align: center;
}
</style>
然后,,,,然后就少了enmmmm
求解
你应该要有两个swiper-slide
这是写死的固定数据
跟据后台参数传的数据来 渲染