• ElementUI之el-scrollbar+el-select组合


    这篇文章主要是使用了ElementUI的隐藏滚动组件和select选择器,并处理在使用过程中遇到的问题。

    1、自定义select样式

    2、ScrollBar+select组合

    3、当select处于下拉状态时,滚动文本已经到达底部还会继续滚动

    4、设置滚动区域的高度,也可设置max-height

    /deep/.default-scrollbar__view {
            height: 320px;
    }

    5、滚动区域出现横向滚动条,隐藏横向滚动栏

    /deep/.el-scrollbar {
            position: relative;
            .el-scrollbar__wrap {
                overflow-x: hidden; // 隐藏横向滚动栏
            }
    }

    6、由于select的下拉框中也使用了隐藏的滚动条,使下拉区域在数据多的情况下也能滚动内容区,再加上自定义的样式,使之出现了3的情况。这是需要设置下拉框面板的内容溢出隐藏。又因为多重滚动的使用使下拉框的内

    容区最后一条数据显示不全,则需要设置其padding值将盒子撑开已达到数据不被遮盖的目的。

    /deep/.el-select-dropdown {
        overflow: hidden;
        .el-scrollbar { 
            padding-bottom: 17px;
            .el-scrollbar__wrap {
                max-height: 150px;
                overflow-x: hidden;
            }
        }
    }

    7、下拉框的效果之自定义样式

      

    .common-select{
        .input-title .el-select{
            background: none;
            border: none;
             100%;
        }
        .el-select-dropdown{
            border: solid 1px #404040;
            background-color: #404040;
        }
        .el-select-dropdown__item selected hover {
            border: none;
        }
        .el-input{
            border: none;
        }
        .el-input__inner{
            background: #262626;
            border: none;
            text-align: center;
            color: #ffffff;
        }
        .el-select .el-input.is-focus .el-input__inner{
            border: none;
        }
        .el-popper[x-placement^="bottom"] .popper__arrow{
            border-bottom-color: #404040;
        }
        .el-popper[x-placement^="bottom"] .popper__arrow::after{
            border-bottom-color: #404040;
        }
        .el-popper[x-placement^="bottom"] .popper__arrow{
            top: 9999px;
        }
        .el-select .el-input__inner:focus{
            border-color: #262626;
        }
        .el-input__inner:focus{
            border-color: #262626;
        }
        .el-select-dropdown {
            position: absolute;
            z-index: 1001;
            border: solid 1px #404040;
            border-radius: 4px;
            background-color: #404040;
            -webkit-box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
            box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
            -webkit-box-sizing: border-box;
            box-sizing: border-box;
            margin: 5px 0; 
        }
        .el-select-dropdown.is-multiple .el-select-dropdown__item.selected {
            color: #ffffff;
            background-color: #404040;
        }
        .el-select-dropdown.is-multiple .el-select-dropdown__item.selected.hover {
            background-color: #404040;
        }
        .el-select-dropdown__item.selected{
            color: #FFBE34;
        }
        .el-input--suffix .el-input__inner{
            text-align: center;
        }
        .el-select-dropdown__item,.el-select-dropdown__item  {
            background-color: #404040;
            color: #ffffff;
            font-weight: bold;
            text-align: center;
        }
        .el-select-dropdown__item.hover,.el-select-dropdown__item:hover{
            background-color: #404040;
            color: #FFBE34;
            text-decoration: underline #FFBE34;
        }
        span:focus-within {
            border: none;
            outline: none;
          }
    }

    上菜咯(*^__^*):

    <template>
        <div class="scrollbar-select">
            <h1>滚动条下拉框</h1>
            <div class="register-contanier">
                <el-scrollbar
                    :key="2"
                    class="default-scrollbar srcoll-bar-init"
                    wrap-class="default-scrollbar__wrap"
                    view-class="default-scrollbar__view"
                >
                    <div class="register-center common-select">
                        <el-select v-model="urlValue" :placeholder="`请选择`" :popper-append-to-body="false">
                            <el-option v-for="(subItem, subIndex) in urlList" :label="subItem.key" :value="subItem.value" :key="subIndex"></el-option>
                        </el-select>
                    </div>
    
                    <ul>
                        <li v-for="n in 50" :key="n">啊啊啊啊啊啊啊啊啊啊{{ n }}</li>
                    </ul>
                </el-scrollbar>
            </div>
        </div>
    </template>
    
    <script>
    export default {
        name: '',
        data() {
            return {
                urlValue: '',
                urlList: [
                    {
                        "key": "https://xxx.com",
                        "value": "1"
                    },
                    {
                        "key": "https://xxx.com1",
                        "value": "2"
                    },
                    {
                        "key": "https://xxx.com2",
                        "value": "3"
                    },
                    {
                        "key": "https://xxx.com1",
                        "value": "4"
                    },
                    {
                        "key": "https://xxx.com2",
                        "value": "5"
                    },
                    {
                        "key": "https://xxx.com1",
                        "value": "6"
                    },
                    {
                        "key": "https://xxx.com2",
                        "value": "7"
                    },
                    {
                        "key": "https://xxx.com1",
                        "value": "8"
                    },
                    {
                        "key": "https://xxx.com2",
                        "value": "9"
                    },
                    {
                        "key": "https://xxx.com444",
                        "value": "10"
                    }
                ]
            };
        },
        components:{
        }
    }
    </script>
    
    <style lang="less" scoped>
    .register-contanier {
        position: relative;
        height: 320px;
         500px;
        margin: auto;
        margin-top: 150px;
        background: #262626;
        .srcoll-bar-init{
            height: 100%;
        }
        /deep/.default-scrollbar__view {
            height: 320px;
        }
        /deep/.el-scrollbar {
            position: relative;
            .el-scrollbar__wrap {
                overflow-x: hidden; // 隐藏横向滚动栏
            }
        }
    }
    .register-content {
        position: relative;
        height: 320px;
         500px;
        margin: auto;
        margin-top: 154px;
        padding: 30px 50px;
        background: #262626;
        display: flex;
        align-items: center;
        box-sizing: border-box;
    }
    .common-select{
      padding: 0 30px;
    }
    /deep/.el-select{ 100%; } /deep/.el-select-dropdown { overflow: hidden; .el-scrollbar { padding-bottom: 17px; .el-scrollbar__wrap { max-height: 150px; overflow-x: hidden; } } } </style>

    文章到这里就结束了。欢迎小伙伴们评论留言。(*^__^*)

  • 相关阅读:
    互联网商业数据分析(二十七):运营分析(三)用户分层
    鲲鹏服务器上跑dpdk kni bug
    dpdk 网卡顺序
    dpvs ipvsadm.c:114:10: fatal error: popt.h: No such file or directory
    dpvs keepalived编译出错
    ps查看线程所在的cpu + pstack 线程+ strace 线程
    查看内核模块加载时参数
    dpdk kni二
    dpdk eal 参数
    dpdk project gdb
  • 原文地址:https://www.cnblogs.com/min77/p/14646745.html
Copyright © 2020-2023  润新知