zoukankan      html  css  js  c++  java
  • Element-ui中ElScrollBar组件滚动条的使用

    在翻看 element-ui官网的文档时,发现其左侧导航和右边的内容超出屏幕时,滚动条的样式比较小巧,通过浏览器审查工具查看,发现它是使用了el-scrollbar的样式,跟element-ui的组件样式命名一致。但文档中并没有关于这个 scrollbar组件的使用文档,搜索一番得知这是一个隐藏组件,官方在 github 的 issues 中表示不会写在文档中,需要用的自己看源码进行调用。

    1、使用

    按需加载需要单独加载Scrollbar组件、并使用(可能会报无Scrollbar类的错误,但不影响使用),el-scrollbar需要设height(max-height是不行的)

        <el-scrollbar :native="false">
                <div>
                    <p v-for="(item, index) in 200" :key="index">{{index}} 这里是一些文本。</p>
                </div>
            <el-scrollbar>

    2、配置参数

    props: {
        native: Boolean,  // 是否使用本地,设为true则不会启用element-ui自定义的滚动条
        wrapStyle: {},  // 包裹层自定义样式
        wrapClass: {},  // 包裹层自定义样式类
        viewClass: {},  // 可滚动部分自定义样式类
        viewStyle: {},  // 可滚动部分自定义样式
        noresize: Boolean, // 如果 container 尺寸不会发生变化,最好设置它可以优化性能
        tag: {  // 生成的标签类型,默认使用 `div`标签包裹
          type: String,
          default: 'div'
        }
    }

    3、源码位置

    源码在node_modules 目录下的 element-ui/packages/scrollbar

    模块入口index.js,从main导入 scrollbar并提供一个安装方法注册成全局组件

    注意:隐藏X轴滚动条时,加上前缀,否则会影响el-select的下拉框样式。

    .el-scrollbar__wrap {
    overflow-x: hidden;
    }

    4、监听滚动位置

    <el-scrollbar id="main" class="app-main" ref="myScrollbar">
          <div class="content">
            <h3>顶部</h3>
          </div>
          <div class="content">
            <h3>Transfer 穿梭框</h3>
          </div>
          <div class="content">
            <h3>Form 表单</h3>
          </div>
          <div class="content">
            <h3>Table 表格</h3>
          </div>
          <div class="content">
            <h3>Tag 标签</h3>
          </div>
        </el-scrollbar>
    new Vue({
          el: '#app',
          data: function() {
            return { visible: false }
          },
          mounted() {
            this.handleScroll()
          },
          methods: {
            handleScroll() {
              let _self = this
              let scrollbarEl = this.$refs.myScrollbar.wrap
              scrollbarEl.onscroll = function() {
                if(scrollbarEl.scrollTop > 200) {
                  _self.visible = true
                } else {
                  _self.visible = false
                }
              }
            },
          }
        })


  • 相关阅读:
    PowerShell 显示气球提示框 2
    BAT 删除隐藏文件
    批处理文件 bat 后台运行
    CMD 命令2
    CMD 命令1
    PowerShell 显示气球提示框 1
    查看SQL Server的版本及License
    How to extract a complete list of extension types within a directory?
    Wordpress无法连接Mysql8的问题
    What is `^M` and how do I get rid of it?
  • 原文地址:https://www.cnblogs.com/gxp69/p/11211231.html
Copyright © 2011-2022 走看看