美文网首页
2020-05-14 解决 el-scrollbar 无法显示滚

2020-05-14 解决 el-scrollbar 无法显示滚

作者: 追寻1989 | 来源:发表于2020-05-14 01:32 被阅读0次

    前提条件:请先确保设置了样式使之能够产生滚动条件:

    以面包屑导航设置的样式为例:

    必须给el-scrollbar的父级设置高度才能使el-scrollbar具备滚动条件

    .content{
       height:50px 
    }
    

    这里针对面包屑导航业务对 el-scrollbar 内部一些样式进行重置

    /deep/ .el-scrollbar__wrap {
      width: calc(100% - 250px); //导航条宽度是动态计算的
      white-space: nowrap; // 必须设置不换行才能进行横向滚动
      overflow: hidden !important; //去除默认长的很丑的滚动条
    }
    
    /deep/  .el-breadcrumb__item {
        float: unset !important; // 面包屑导航每一项去除浮动
     }
    

    如果到这里导航栏还不显示, 像我这样鼠标移动上去不显示滚动条:

    可能是由于 el-scrollbar 无法及时监听到内部标签的宽度变化例如:我们使用 el-breadcrumb 面包屑来当浏览导航,当导航长度超出时,此时 el-scrollbar 无法监听到el-breadcrumb内部宽度的变化,无法产生滚动条

    这里再以面包屑导航为例进行解决:

    <div class='content'>
      <el-scrollbar v-if="showScroll">
        <el-breadcrumb>
          <transition-group name="breadcrumb">
            <el-breadcrumb-item v-for="(item,index) in levelList" :key="index">
                    ...内部动态添加的内容省略
            </el-breadcrumb-item>
          </transition-group>
        </el-breadcrumb>
      </el-scrollbar>
    </div>
    

    重点来了!由于滚动条监测不到面包屑导航栏内部宽度变化,当内容超出时无法正常显示滚动条,所以监听导航标签数组的变化,让滚动条内部触发重新计算宽度。

    export default {
      data() {
        return {
          showScroll: true
        };
      },
      watch: {
        levelList() {
          //由于滚动条监测不到面包屑导航栏内部宽度变化,当内容超出时无法正常显示滚动条,所以手动触发让滚动条内部重新计算宽度
          this.showScroll = false;
          this.$nextTick(() => {
            this.showScroll = true;
          });
        }
      },
    }
    
    完美解决,鼠标移动上去的效果:

    相关文章

      网友评论

          本文标题:2020-05-14 解决 el-scrollbar 无法显示滚

          本文链接:https://www.haomeiwen.com/subject/opaanhtx.html