问题一:只有两个图片时滚动顺序错误
解决办法:复制一份单独处理[1,2,1,2]
代码:
<el-carousel indicator-position="none" arrow="never" :interval="3000" >
<el-carousel-item v-for="(myitem, myindex) in item.fileList" :key="myindex">
<img :src="myitem.filePath" style="width:100%;height:100%"/>
</el-carousel-item>
<div v-if="item.fileList.length==2">
<el-carousel-item v-for="(myitem, myindex) in item.fileList" :key="myindex">
<img :src="myitem.filePath" style="width:100%;height:100%"/>
</el-carousel-item>
</div>
</el-carousel>
问题二:在分页的时候轮播顺序不一致
解决办法:每次更新数据使用 key 来重置dom
<div class="list-main" :key="carouselUpdate"></div>
getdata() {
this.carouselUpdate+=1;
} 文章来源:https://www.toymoban.com/news/detail-409235.html
问题三:鼠标移入时不停止轮播
解决办法:清除原本的鼠标移入事件
@mouseenter.native="delHandleMouseEnter(index)"
<el-carousel ref="carousel" indicator-position="none" arrow="never" :interval="3000" :height="carousHeight" @mouseenter.native="delHandleMouseEnter(index)">
<div v-if="item.imgTxt && item.imgTxt.length>0">
<el-carousel-item v-for="(myitem, myindex) in item.imgTxt" :key="myindex">
<img v-if="myitem.filetype=='.jpeg'" :src="myitem.filepath" width="100%" height="100%"/>
<vue-core-video-player v-else preload="nona" :controls="false" :autoplay="false" :src="myitem.filepath"></vue-core-video-player>
</el-carousel-item>
</div>
<div v-if="item.imgTxt && item.imgTxt.length==2">
<el-carousel-item v-for="(myitem, myindex) in item.imgTxt" :key="myindex">
<img v-if="myitem.filetype=='.jpeg'" :src="myitem.filepath" width="100%" height="100%"/>
<vue-core-video-player v-else preload="nona" :controls="false" :autoplay="false" :src="myitem.filepath"></vue-core-video-player>
</el-carousel-item>
</div>
<div v-if="item.imgTxt && item.imgTxt.length==0">
<el-carousel-item v-for="(item,index) in 4" :key="index">
<img src="https://cube.elemecdn.com/6/94/4d3ea53c084bad6931a56d5158a48jpeg.jpeg" width="100%" height="100%"/>
</el-carousel-item>
</div>
</el-carousel>
// 鼠标移入卡片banner不停止
delHandleMouseEnter(index) {
this.$refs.carousel[index].handleMouseEnter = () => {}
},
为了第一次鼠标进入就触发,需要在mounted方法中写,而且轮播图是多张,所以需要循环遍历index,经过尝试在mounted的时候获取不到dom,可在数据更新后且dom重置后再进行操作。
getdata() {
this.carouselUpdate+=1;
this.$nextTick(e=>{
this.$refs.carousel.forEach((item, index) => {
this.$refs.carousel[index].handleMouseEnter = () => {}
})
})
}
问题四:轮播区域高度自适应
解决办法:vue监听页面缩放(另一博文)文章来源地址https://www.toymoban.com/news/detail-409235.html
到了这里,关于element-ui走马灯使用心得的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!