Vue使用Element-ui走马灯功能动态改变图片和容器大小
在Vue项目开发中,发现使用Element的走马灯功能实例中
<template><div class="block">
<span class="demonstration">默认 Hover 指示器触发</span>
<el-carousel height="150px">
<el-carousel-item v-for="item in 4" :key="item">
<h3 class="small">{{ item }}</h3>
</el-carousel-item>
</el-carousel>
</div>
<div class="block">
<span class="demonstration">Click 指示器触发</span>
<el-carousel trigger="click" height="150px">
<el-carousel-item v-for="item in 4" :key="item">
<h3 class="small">{{ item }}</h3>
</el-carousel-item>
</el-carousel>
</div>
</template>
<style>
.el-carousel__item h3 {
color: #475669;
font-size: 14px;
opacity: 0.75;
line-height: 150px;
margin: 0;
}
.el-carousel__item:nth-child(2n) {
background-color: #99a9bf;
}
.el-carousel__item:nth-child(2n+1) {
background-color: #d3dce6;
}
img{
width:100%;
}
</style>
由于img的宽度设置了100%,所以高度会根据图片来自动调整,但当浏览器的大小发生改变,会出现图片下面出现空白现象,如果固定img的高度,那么图片就可以会随浏览器的变化发生变形。
图片下面出现空白现象
图片就可以会随浏览器的变化发生变形
这个时候可以通过动态设置父级容器的高度来解决这个问题,代码如下
<template><div id="banner">
<!--动态将图片轮播图的容器高度设置成与图片一致-->
<el-carousel :height="bannerHeight + \'px\'" >
<!--遍历图片地址,动态生成轮播图-->
<el-carousel-item v-for="item in img_list" :key="item">
<img :src="item" alt="">
</el-carousel-item>
</el-carousel>
</div>
</template>
<script>
export default {
name: "Banner",
data(){
return{
// 图片地址数组
img_list:[
"/static/image/111.png",
"/static/image/222.png",
"/static/image/333.png",
"/static/image/444.png",
],
// 图片父容器高度
bannerHeight :1000,
// 浏览器宽度
screenWidth :0,
}
},
methods:{
setSize:function () {
// 通过浏览器宽度(图片宽度)计算高度
this.bannerHeight = 400 / 1920 * this.screenWidth;
},
},
mounted() {
// 首次加载时,需要调用一次
this.screenWidth = window.innerWidth;
this.setSize();
// 窗口大小发生改变时,调用一次
window.onresize = () =>{
this.screenWidth = window.innerWidth;
this.setSize();
}
}
}
</script>
<style scoped>
.el-carousel__item h3 {
color: #475669;
font-size: 14px;
opacity: 0.75;
line-height: 300px;
margin: 0;
}
.el-carousel__item:nth-child(2n) {
background-color: #99a9bf;
}
.el-carousel__item:nth-child(2n+1) {
background-color: #d3dce6;
}
img{
/*设置图片宽度和浏览器宽度一致*/
width: 100%;
height: inherit;
}
</style>
以上是 Vue使用Element-ui走马灯功能动态改变图片和容器大小 的全部内容, 来源链接: utcz.com/z/376320.html