好看的Select下拉框是如何制造的

现在在大多数网站中都能看到很华丽的Select下拉框,他们是如何实现的呢?
使用默认select肯定是不好实现,我们可以使用div+js去模拟出来select的功能,并且又能很简单的去美化它。

CSS代码部分

<style type="text/css">
    .mod_select{position:absolute;left:30%;top:100px;font-familY:Arial, Helvetica, sans-serif;}
    .mod_select ul{margin:0;padding:0;}
    .mod_select ul li{list-style-type:none;float:left;margin-left:20px;height:24px;}
    .select_label{color:#982F4D;float:left;line-height:24px;padding-right:10px;font-size:12px;font-weight:700;}
    .select_box{float:left;border:solid 1px #EDE7D6;color:#444;position:relative;cursor:pointer;width:165px;background:url(../select_bg.jpg) repeat-x;font-size:12px;}
    .selet_open{display:inline-block;border-left:solid 1px #E5E5E5;position:absolute;right:0;top:0;width:30px;height:24px;background:url(../select_up.jpg) no-repeat center center;}
    .select_txt{display:inline-block;padding-left:10px;width:135px;line-height:24px;height:24px;cursor:text;overflow:hidden;}
    .option{width:165px;;border:solid 1px #EDE7D6;position:absolute;top:24px;left:-1px;z-index:2;overflow:hidden;display:none;}
    .option a{display:block;height:26px;line-height:26px;text-align:left;padding:0 10px;width:100%;background:#fff;}
    .option a:hover{background:#FDE0E5;}
</style>

Js代码部分

<script type="text/javascript">
    $(document).ready(function(){
            $(".select_box").click(function(event){   
                event.stopPropagation();
                $(this).find(".option").toggle();
                $(this).parent().siblings().find(".option").hide();
            });
            $(document).click(function(event){
                var eo=$(event.target);
                if($(".select_box").is(":visible") && eo.attr("class")!="option" && !eo.parent(".option").length)
                $('.option').hide();                                      
            });
            /*赋值给文本框*/
            $(".option a").click(function(){
                var value=$(this).text();
                $(this).parent().siblings(".select_txt").text(value);
                $("#select_value").val(value)
             })
        })
</script>

Html代码部分

<div class="mod_select">
    <ul>
        <li>
            <span class="select_label">sort buy:</span>
            <div class="select_box">
                <span class="select_txt"></span><a class="selet_open"><b></b></a>
                <div class="option">
                    <a>1</a>
                    <a>2</a>
                    <a>3</a>
                </div>
            </div>
            <br clear="all" />
        </li>
        <li>
            <span class="select_label">View:</span>
            <div class="select_box">
                <span class="select_txt"></span><a class="selet_open"></a>
                <div class="option">
                    <a>1</a>
                    <a>2</a>
                    <a>3</a>
                </div>
            </div>
        </li>
    </ul>
    <input type="hidden" id="select_value" />
</div>

选中的值我们从这个元素里取$("#select_value")就可以了。

posted @ 2015-11-23 17:37  Mr. Hu  阅读(1703)  评论(0编辑  收藏  举报
Map