element-ui走马灯使用心得

问题一:只有两个图片时滚动顺序错误

解决办法:复制一份单独处理[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;

}        

问题三:鼠标移入时不停止轮播

解决办法:清除原本的鼠标移入事件 

@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监听页面缩放(另一博文)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值