今天遇到一个问题,就是用原生的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>
四、效果图