为了账号安全,请及时绑定邮箱和手机立即绑定

element-ui表格的滚动条样式修改

element-ui表格的滚动条样式修改

慕妹3146593 2019-03-14 14:15:22
默认element-ui的表格的滚动条样式是这样,有没有其他的滚动条样式?如何修改?
查看完整描述

2 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

随便找个滚动条插件 然后运用一下自定义指令

可以在主入口完成

我挑选了perfect-scrollbar

大致如下


import Vue from 'vue';

//自定义滚动条

import PerfectScrollbar from 'perfect-scrollbar';


/**

 * @description 为自定义滚动条全局注入自定义指令。自动判断该更新PerfectScrollbar还是创建它

 * @param {Element} el - 必填。dom元素

 */

const el_scrollBar = (el) => {

    //在元素上加点私货,名字随便取,确保不会和已有属性重复即可,我取名叫做_ps_

    if (el._ps_ instanceof PerfectScrollbar) {

        el._ps_.update();

    } else {

        //el上挂一份属性

        el._ps_ = new PerfectScrollbar(el, { suppressScrollX: true });

    }

};


Vue.directive("anyNameYouLike",{

    inserted(el, binding){

        const { arg } = binding;

        if(arg === "任何你喜欢的标记"){

            el = el.querySelector(".el-table__body-wrapper");

            if(!el){

                return console.warn("未发现className为el-table__body-wrapper的dom");

            }

        }

        const rules = ["fixed", "absolute", "relative"];

            if (!rules.includes(window.getComputedStyle(el, null).position)) {

                console.error(`perfect-scrollbar所在的容器的position属性必须是以下之一:${rules.join("、")}`)

            }

            el_scrollBar(el);

    },

    componentUpdated(el, binding, vnode) {

        const { arg } = binding;

        if (arg === "任何你喜欢的标记") {

            el = el.querySelector(".el-table__body-wrapper");

            if(!el){

                return console.warn("未发现className为el-table__body-wrapper的dom");

            }

        }

        vnode.context.$nextTick(

            () => {

                try {

                    el_scrollBar(el);

                } catch (error) {

                    console.error(error);

                }

            }

        )

    },

})

然后你使用起来就很简单了

如果是普通的元素


<div v-anyNameYouLike>

    <!--巴拉巴拉-->

</div>

如果是饿了么的table组件


<el-table :data="你的数据源" v-anyNameYouLike:任何你喜欢的标记>

    <!--巴拉巴拉-->

</el-table>

是不是很简单

效果拔群

https://img2.sycdn.imooc.com/5cb2cd860001ea9908000350.jpg

查看完整回答
反对 回复 2019-04-14
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

之前在使用element-ui表格的时候有修改过滚动条的样式,但是没有找到官方的途径

后来是这么改的,可以参考看看


//滚动条的宽度

.your-table .el-table__body-wrapper::-webkit-scrollbar {

  width: 10px;

  height: 10px;

}

//滚动条的滑块

.your-table .el-table__body-wrapper::-webkit-scrollbar-thumb {

  background-color: #a1a3a9;

  border-radius: 3px;

}

如果是整个页面的滚动条风格是一致的,直接改全局的滚动条样式也可以有效果


//滚动条的宽度

::-webkit-scrollbar {

  width: 10px;

  height: 10px;

}

//滚动条的滑块

::-webkit-scrollbar-thumb {

  background-color: #a1a3a9;

  border-radius: 3px;

}

滚动条样式存在兼容性问题,以上的样式是在webkit浏览器下可生效的


查看完整回答
反对 回复 2019-04-14
  • 2 回答
  • 0 关注
  • 8685 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号