走马灯代码结构走一遍 (imgList数组在data中声明,此为本地数据)
data() {
return{
// 图片需要引入, 否则无法显示
imgList: [
{id: 0, idView: require('../assets/images/banner3.jpg')},
{id: 1, name: '详情', idView: require('../assets/images/banner2.jpg')},
{id: 2, name: '推荐', idView: require('../assets/images/banner1.jpg')}
]
}
}
复制代码
<template>
<el-carousel :interval="5000" arrow="always" class="d_jump" :height="imgHeight">
<el-carousel-item v-for="item in imgList" :key="item.id">
<el-row>
<el-col :span="24"><img ref="imgHeight" :src="item.idView" class="banner_img"/></el-col>
</el-row>
</el-carousel-item>
</el-carousel>
</template>
复制代码
element UI 官网地址戳这里
http://element-cn.eleme.io/#/zh-CN/component/carousel
Carousel 中有一个height
参数 如果给固定值620px,那么它会出现如图效果, 图片的宽高随可视窗口的改变等比放大或缩小,可视窗口缩小,图片的宽度和高度缩小, 轮播图的固定高度不变, so...如图所示 如果图片给height: 100%;
属性,图片会拉伸;好吧,那就换一个auto,则如图所示
所以,要想图片正常显示,又不会出现空白条的办法,就是动态改变轮播图的高度跟图片高度相等即可。
- 首先获取图片的高度,通过
ref
来获取DOM元素
- 监听窗口发生改变时,获取img的高度,给轮播图height属性添加属性值
that.imgHeight = '620px'
window.onresize = function temp() {
// 通过点语法获取img的height属性值
that.imgHeight = `${that.$refs.imgHeight['0'].height}px`
}
复制代码
初识vue如有误,请指正,不胜感激。 完工。
所有评论(0)