解决Vue的项目使用Element ui 走马灯无法实现的问题
作者:墨香如旧
这篇文章主要介绍了解决Vue的项目使用Element ui 走马灯无法实现的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
1.在vue项目中引入element ui
http://element.eleme.io/#/zh-CN/component/carousel
引入后,HTML部分
<el-carousel height="150px"> <el-carousel-item v-for="item in imgList" :key="item" height="300px" > <h3><img :src="item" alt=""> </h3> </el-carousel-item> </el-carousel>
JS部分
<script> export default { data(){ return { imgList:[ require('../../assets/img/images/a1.png'), require('../../assets/img/images/a2.png'), require('../../assets/img/images/a3.png'), require('../../assets/img/images/a4.png'), require('../../assets/img/images/a5.png') ] } }, components: { } } </script>
用webpack搭建的项目不能直接使用绝对路径,要用require,如果不使用这个,必须是线上图片。http类型的
补充知识:基于vue 使用element UI框架 实现走马灯 图片高度自适应
走马灯代码结构走一遍 (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的项目使用Element ui 走马灯无法实现的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。