jquery实现select的美化

<html>
    <head>
        <script src="jquery-1.2.js"></script>
        <script>
            $(document).ready(
                function () {
                    $("#select").click (
                        function () {
                            var original =this;
                            $(original).blur();
                            $(original).css("visibility", "hidden");
                            var value = $(this).attr("value");
                            var topOffset = 0;
                            var alternate = document.createElement("div");
                            $(document.body).append(alternate);
                            {
                                var alternate_select = document.createElement("div");
                                $(alternate).append(alternate_select);
                                $(alternate_select).css("position", "absolute");
                                $(alternate_select).css("width", original.offsetWidth + "px");
                                $(alternate_select).css("height", original.offsetHeight + "px");
                                $(alternate_select).css("top", "0px");
                                $(alternate_select).css("left", "0px");
                                $(alternate_select).css("cursor", "pointer");
                                $(alternate_select).text(
                                    $($(original).children("option").filter(
                                            function (index) {
                                                return $(original).attr("value") === value;
                                            }
                                        )[0]
                                    ).text()
                                );
                                $(alternate_select).click(
                                    function () {
                                        $(original).css("visibility", "inherit");
                                        document.body.removeChild(alternate);
                                    }
                                );
                                $(alternate_select).hover(
                                    function (event) {
                                        $(this).css("background-color", "blue");
                                        $(this).css("color", "white");
                                    },
                                    function (event) {
                                        $(this).css("background-color", "inherit");
                                        $(this).css("color", "inherit");
                                    }
                                );
                            }
                            topOffset += alternate_select.offsetHeight;
                            {
                                $(original).children("option").each(
                                    function (index, element) {
                                        var alternate_option = document.createElement("div");
                                        $(alternate).append(alternate_option);
                                        $(alternate_option).css("position", "absolute");
                                        $(alternate_option).css("width", element.offsetWidth + "px");
                                        $(alternate_option).css("height", element.offsetHeight + "px");
                                        $(alternate_option).css("top", topOffset + "px");
                                        $(alternate_option).css("left", "0px");
                                        $(alternate_option).css("cursor", "pointer");
                                        $(alternate_option).text($(element).text());
                                        var option_value = $(element).attr("value");
                                        if (value === option_value) {
                                            $(alternate_option).css("font-weight", "bold");
                                        }
                                        $(alternate_option).click(
                                            function () {
                                                $(original).attr("value", option_value);
                                                $(original).css("visibility", "inherit");
                                                document.body.removeChild(alternate);
                                            }
                                        );
                                        $(alternate_option).hover(
                                            function () {
                                                $(this).css("background-color", "blue");
                                                $(this).css("color", "white");
                                            },
                                            function () {
                                                $(this).css("background-color", "inherit");
                                                $(this).css("color", "inherit");
                                            }
                                        );
                                        topOffset += alternate_option.offsetHeight;
                                    }
                                );
                            }
                            $(alternate).css("position", "absolute");
                            $(alternate).css("top", original.offsetTop + "px");
                            $(alternate).css("left", original.offsetLeft + "px");
                            $(alternate).css("width", alternate_select.offsetWidth + "px");
                            $(alternate).css("height", topOffset + "px");
                            $(alternate).css("background-image", "url(http://s.goumin.com/imgs/logo.gif)");
                        }
                    );
                }
            );
        </script>
    </head>
    <body>
        <select id="select">
            <option value="1">option 1</option>
            <option value="2">option 2</option>
            <option value="3">option 3</option>
            <option value="4">option 4</option>
        </select>
    </body>
</html> 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值