美文网首页
js,jquery原生实现select选择器

js,jquery原生实现select选择器

作者: 一岁倾城 | 来源:发表于2021-01-08 21:14 被阅读0次

今天遇到一个问题,就是用原生的select选择器的时候感觉“select选择器”样式很难修改,自带的样式不是很好看,所有就~~~哈哈哈,下决心自己手写一个select选择器,这样对操作样式很方便啦。— —+

废话不多说,上代码

一、html代码

<!--有数据时-->
    <div class="wuziSelect">
        <span class="selectVal" onclick="wuziSelect(this);">请选择</span>
        <div class="optionItemsBox tt">
            <ul>
                <li class="noOptionVal" onclick="selectVal(this,false);" style="display:none;">暂时没有数据</li>
                <li onclick="selectVal(this,true);">lalaaall1</li>
                <li onclick="selectVal(this,true);">lalaaall2</li>
                <li onclick="selectVal(this,true);">lalaaall3</li>
                <li onclick="selectVal(this,true);">lalaaall4</li>
                <li onclick="selectVal(this,true);">lalaaall5</li>
                <li onclick="selectVal(this,true);">lalaaall6</li>
                <li onclick="selectVal(this,true);">lalaaall7</li>
                <li onclick="selectVal(this,true);">lalaaall8</li>
                <li onclick="selectVal(this,true);">lalaaall9</li>
                <li onclick="selectVal(this,true);">lalaaall0</li>
            </ul>
        </div>
    </div>
    
    <!--没有数据时-->
    <div class="wuziSelect">
        <span class="selectVal" onclick="wuziSelect(this);">请选择</span>
        <div class="optionItemsBox tt">
            <ul>
                <li class="noOptionVal" onclick="selectVal(this,false);" style="display:none;">暂时没有数据</li>
            </ul>
        </div>
    </div>

二、css样式

<style>
        /*滚动条*/
        .tt{
            overflow-y:auto;
        }
        .tt::-webkit-scrollbar {
            width: 8px;
            height: 1px;
        }
        .tt::-webkit-scrollbar-thumb {
            border-radius: 4px;
            background: rgba(0, 0, 0, 0.3);
            /*border-bottom: 2px solid #ccc;*/
        }
        .tt::-webkit-scrollbar-track {
            border-radius: 4px;
            background: #00000038;
        }
        ul,li{
            margin: 0;
            padding: 0;
            list-style: none;
        }
        .wuziSelect{
            width: 200px;
            background: #fff;
            border: 1px solid #ccc;
            border-radius: 4px;
            position: relative;
        }
        .wuziSelect span{
            display: block;
            width: calc(100% - 20px);
            height: 100%;
            padding: 10px;
        }
        .wuziSelect .optionItemsBox{
            position: absolute;
            top: 50px;
            left: 0;
            width: 200px;
            padding: 10px;
            background: #fff;
            display: none;
            border: 1px solid #ccc;
            border-radius: 4px;
            /*height: 200px;*/
            height: 0px;
            transition: .5s;
        }
        .wuziSelect .optionItemsBox ul li{
            width: 100%;
            height: 40px;
            line-height: 40px;
        }
        .wuziSelect .optionItemsBox ul li:focus{
            background: rgba(0,0,0,.4);
        }
    </style>

三、js代码块

<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
    function wuziSelect(e){
        var wuziSelect = $(e).parent();//wuziSelect元素
        if(wuziSelect.children('.optionItemsBox').children('ul').children().length <= 1){
            wuziSelect.find('.noOptionVal').show();
            wuziSelect.children('.optionItemsBox').show().css('height','40px');
        }else{
            wuziSelect.children('.optionItemsBox').show().css('height','200px');
       }
   }
   function selectVal(e,a){
      var val = e.innerText;
      var wuziSelect = $(e).parent().parent().parent();//wuziSelect元素
      if(a == true){
           wuziSelect.children('.selectVal').text(val);
      }
      wuziSelect.children('.optionItemsBox').hide();
   }
</script>

四、效果图

select选择器-点击前.png select选择器.png select选择器-点击后.png

相关文章

  • js,jquery原生实现select选择器

    今天遇到一个问题,就是用原生的select选择器的时候感觉“select选择器”样式很难修改,自带的样式不是很好看...

  • jQuery 对象 与 原生 DOM 对象 相互转换

    区别 jQuery 选择器得到的 jQuery对象 和 原生JS 中的document.getElementByI...

  • jQuery 常用API

    1. jQuery 选择器 1.1 jQuery 基础选择器 原生 JS 获取元素方式很多,很杂,而且兼容性情况不...

  • ## JQuery选择器

    一、概要 使用jQuery 选择器选取元素,并封装为jQuery对象在JS原生DOM中,我们想要对DOM元素进行操...

  • No.32 jQuery选择器

    一、jQuery 基础选择器 原生 JS 获取元素方式很多,很杂,而且兼容性情况不一致,因此 jQuery 给我们...

  • Jquery

    Jquery的 总体思想:用最少的代码实现更多的事件 为什么使用jQuery js选择器功能弱 js中DOM操作繁...

  • 20、jQuery 事件机制

    20、jQuery 事件机制 原生js事件与jQuery事件: (1)用原生的js给div注册事件 原生js注册相...

  • 使用原生js实现复制对象及扩展

    使用原生js实现复制对象,扩展对象,类似JQuery中的extend()方法

  • 00-jQuery初识

    什么是jQuery jQuery是一个JavaScript库 jQuery可以简化原生JS的操作 对比原生JS,写...

  • AJAX实现

    原生js jquery

网友评论

      本文标题:js,jquery原生实现select选择器

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