• vue select自定义组件


    自定义select组件

    相信大家很多时候都有这样一种需求,不能用Ui框架,要自己手写一个select组件之类的需求,当然我今天也遇到了。于是自己动手弄了一个非常简单的select组件,但是这个却是有一个问题,后面再来讲问题是什么。

    <template>
      <div class="xbsjselect">
        <div class="xbsjselect-selectdiv" @click="selectClick">
          <span class="xbsjselect-selectText">{{currentValue}}</span>
          <button class="xbsjselect-selectButton"></button>
        </div>
        <ul class="xbsjselect-selectOption" v-show="selectshow">
          <li v-for="(ct,index) in listdata" :key="index" @click="selectName(ct)">
            <span>{{ ct }}</span>
          </li>
        </ul>
      </div>
    </template>
    
    <script>
    export default {
      props: {
        list: {
            type:Array,
            default:[]
        },
        value:''
      },
      data() {
        return {
          selectshow: false,
          currentValue:this.value
        };
      },
      computed: {
        listdata() {
          return this.list;
        }
      },
      methods: {
        selectClick() {
          this.selectshow = !this.selectshow;
        },
        selectName(value) {
          this.currentValue = value;
          this.selectshow = false;
        }
      },
      watch: {
        currentValue(val, old) {
            this.$emit("input",val);
        }
      }
    };
    </script>
    
    <style scoped>
    .xbsjselect {
      position: relative;
       100%;
    }
    .xbsjselect-selectdiv {
      display: inline-block;
       100%;
      background: rgba(0, 0, 0, 0.4);
      height: 28px;
      position: relative;
      text-align: left;
      line-height: 28px;
      cursor: pointer;
      padding-left: 13px;
      left: -2px;
      top: 2px;
      border-radius: 3px;
    }
    .xbsjselect-selectText {
      font-size: 12px;
    }
    .xbsjselect-selectButton {
       12px;
      height: 10px;
      border: none;
      background: url(../../../images/titles-select.png) no-repeat;
      background-size: contain;
      cursor: pointer;
      float: right;
      margin-right: 20px;
      margin-top: 10px;
      outline: none;
    }
    .xbsjselect-selectOption {
       100%;
      height: 80px;
      background: rgba(138, 138, 138, 1);
      border-radius: 0px 0px 4px 4px;
      list-style: none;
      overflow: auto;
      z-index: 1;
      position: absolute;
    }
    
    .xbsjselect-selectOption li {
       100%;
      height: 20px;
      font-size: 14px;
      color: rgba(221, 221, 221, 1);
      line-height: 20px;
      cursor: pointer;
    }
    .xbsjselect-selectOption li span {
      display: inline-block;
      height: 20px;
      position: relative;
      left: 11px;
    }
    .xbsjselect-selectOption li:hover {
      background: rgba(107, 107, 107, 1);
    }
    </style>
    

    这里引用了一个图片。是一个小三角,需要可自行替换。

  • 相关阅读:
    java_000.JAVA语言课堂测试试卷01
    2018暑假第八周总结&暑假代码成果总结(8.27-9.2)
    C#_最基础的计算器
    Java_学生信息管理系统——数组版——初次编写
    Java_计算器001,支持加减乘除,括号,小数点,√,^ 运算
    Java_计算器001,支持加减乘除,括号运算
    2018暑假第七周总结(8.20-8.26)
    2018暑假第六周总结(8.13-8.19)
    2018暑假第五周总结(8.6-8.12)
    poj 1984(带权并查集)
  • 原文地址:https://www.cnblogs.com/justyouadmin/p/11121501.html
Copyright © 2020-2023  润新知