div模拟select下拉菜单效果

有些时候select下拉菜单直接用css调整样式,可能会有兼容性的问题,尤其是右侧的下拉三角,很难用css控制,那怎么办呢?可以采用div模拟select下拉菜单的效果。先直接上代码了:

HTML的结构如下:

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>div模拟下拉菜单特效</title>
<style type="text/css">
body,ul,li{ margin:0; padding:0; font-size:13px;}
ul,li{list-style:none;}

#divselect{width:186px; margin:80px auto; position:relative; z-index:10000;}
#divselect cite{width:150px; height:24px;line-height:24px; display:block; color:#807a62; cursor:pointer;font-style:normal;
padding-left:4px; padding-right:30px; border:3px solid #333333; 
background:url(xjt.png) no-repeat right center;}
#divselect ul{width:184px;border:1px solid #333333; background-color:#ffffff; position:absolute; z-index:20000; margin-top:-1px; display:none;}
#divselect ul li{height:24px; line-height:24px;}
#divselect ul li a{display:block; height:24px; color:#333333; text-decoration:none; padding-left:10px; padding-right:10px;}
#divselect ul li a:hover{background-color:#CCC;}
p{margin:10px auto; width:920px;}
#n{margin:10px auto; width:920px; border:1px solid #CCC;font-size:12px; line-height:30px;}
#n a{ padding:0 4px; color:#333}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="divselect.js"></script>
<script type="text/javascript">
$(function(){
    divselect("#divselect","#inputselect");
});
</script>
</head>
<body>

<form action="" method="post">
<div id="divselect">
      <cite>请选择特效分类</cite>
      <ul>
         <li><a href="javascript:;" selectid="1">发现</a></li>
         <li><a href="javascript:;" selectid="2">优惠</a></li>
         <li><a href="javascript:;" selectid="3">海淘</a></li>
         <li><a href="javascript:;" selectid="4">晒物</a></li>
         <li><a href="javascript:;" selectid="5">经验</a></li>
      </ul>
  </div>
  <input name="" type="hidden" value="" id="inputselect"/>
</form>

</body>
</html>
divselect.js 如下:
divselect = function(divselectid,inputselectid) {
    var inputselect = $(inputselectid);
    $(divselectid+" cite").click(function(){
        var ul = $(divselectid+" ul");
        if(ul.css("display")=="none"){
            ul.slideDown("fast");
        }else{
            ul.slideUp("fast");
        }
    });
    $(divselectid+" ul li a").click(function(){
        var txt = $(this).text();
        $(divselectid+" cite").html(txt);
        var value = $(this).attr("selectid");
        inputselect.val(value);
        $(divselectid+" ul").hide();
        
    });
    $(document).click(function(){
        $(divselectid+" ul").hide();
    });
};
原文地址:https://www.cnblogs.com/guaiyutou/p/4154791.html