首页 > 代码库 > 模拟select标签
模拟select标签
大家都知道现在select的右边下拉样式通过纯粹css是改变不了的,,但有时我们作为一个前端人员需要做到与UI设计100%相像,就只有自己模拟他了。下面就是我个人常用的模拟select下拉框的代码。
CSS部分:
body,div,span,ul,li{margin: 0;padding: 0;}
.myselect{width: 250px;height: 35px;border: 1px solid #dddddd;margin-left: 10px;}
.show_opt{width: 200px;height: 35px;float: left;line-height: 35px;position:relative}
.b_select{width: 48px;height: 35px;
outline: none;float: left;background: url("../images/b_sec.png") no-repeat right;}//()
.moren{display: inline-block;width: 200px;}
.s_ul{width: 250px;height: auto;border: 1px solid #dddddd;
position: absolute;top: 35px;left: -1px;display: none}
.s_ul li{width: 250px;height: 25px;line-height: 25px;border-bottom:1px solid #dddddd;list-style: none;}
#lastli{border-bottom: 0px;}
HTML部分:
<div class="myselect">
<div class="show_opt">
<span class="moren dianji"></span>
<ul class="s_ul">
<li>2222</li>
<li>3333</li>
<li>4444</li>
<li>2222</li>
<li>3333</li>
<li id="lastli">4444</li>
</ul>
</div>
<div class="b_select dianji"></div>
</div>
JS部分:(我引用了jquery-1.8.3.js)
$(".moren").html( $(".s_ul").children().first().html())/*默认显示第一个li的内容*/
var flag=true;/*控制隐藏不隐藏*/
$(".dianji").on("click",function(){
if(flag==true){
$(".s_ul").css({display:"block"})
$(".s_ul").children().first().css({backgroundColor:"#0085d0"});
flag=false;
}else{
$(".s_ul").css({display:"none"});
flag=true;
}
});
$(".s_ul li").hover(function(){
$(this).css({backgroundColor:"#0085d0"})
},function(){
$(this).css({backgroundColor:"white"})
});
$(".s_ul li").on("click",function(){
$(".moren").html($(this).html());
$(".s_ul").css({display:"none"});
flag=true;
})
模拟select标签