zoukankan      html  css  js  c++  java
  • select 样式重写插件

    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
        .s-hidden {
            visibility: hidden;
            padding-right: 10px;
        }
        
        .select-box {
            cursor: pointer;
            display: inline-block;
            position: relative;
            font: normal 11px/22px Arial, Sans-Serif;
            color: black;
            border: 1px solid #ccc;
        }
        
        .styledSelect {
            position: absolute;
            top: 0;
            right: 0;
            bottom: 0;
            left: 0;
            background-color: white;
            padding: 0 10px;
            font-weight: bold;
        }
        
        .styledSelect:after {
            content: "";
             0;
            height: 0;
            border: 5px solid transparent;
            border-color: black transparent transparent transparent;
            position: absolute;
            top: 9px;
            right: 6px;
        }
        
        .styledSelect:active,
        .styledSelect.active {
            background-color: #eee;
        }
        
        .options-box {
            display: none;
            position: absolute;
            top: 100%;
            right: 0;
            left: 0;
            z-index: 999;
            margin: 0 0;
            padding: 0 0;
            list-style: none;
            border: 1px solid #ccc;
            border-bottom-right-radius: 4px;
            border-bottom-left-radius: 4px;
            background-color: white;
            -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
            -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
            box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
        }
        
        .options-box li {
            padding: 0 6px;
            margin: 0 0;
            padding: 0 10px;
            border-bottom: 1px solid #ededed;
        }
        
        .options-box li:hover {
            background-color: #39f;
            color: white;
        }
        </style>
    </head>
    
    <body>
        <select id="selectbox1">
            <option value="aye">Aye</option>
            <option value="eh">Eh</option>
            <option value="ooh">Ooh</option>
            <option value="whoop">Whoop</option>
        </select>
        <select id="selectbox2">
            <option value="" disabled selected>select a box...</option>
            <option value="month">Month…</option>
            <option value="january">January</option>
            <option value="february">February</option>
            <option value="march">March</option>
            <option value="april">April</option>
            <option value="may">May</option>
            <option value="june">June</option>
            <option value="july">July</option>
            <option value="august">August</option>
            <option value="september">September</option>
            <option value="october">October</option>
            <option value="november">November</option>
            <option value="december">December</option>
        </select>
        <script src="../jquery.js"></script>
        <script>
        var slectStylesPlugin = (function() {
            var selectValues = {};
            $('select').each(function() {
                // Cache the number of options
                var $this = $(this),
                    numberOfOptions = $(this).children('option').length;
    
                console.log($(this).children('option').attr('disabled'));
    
                // Hides the select element
                $this.addClass('s-hidden');
    
                // Wrap the select element in a div
                $this.wrap('<div class="select-box"></div>');
    
                // Insert a styled div to sit over the top of the hidden select element
                $this.after('<div class="styledSelect"></div>');
    
                // Cache the styled div
                var $styledSelect = $this.next('div.styledSelect');
    
                // Show the first select option in the styled div
                $styledSelect.text($this.children('option').eq(0).text());
    
                // Insert an unordered list after the styled div and also cache the list
                var $list = $('<ul />', {
                    'class': 'options-box'
                }).insertAfter($styledSelect);
    
                // Insert a list item into the unordered list for each select option
                for (var i = 0; i < numberOfOptions; i++) {
                    $('<li />', {
                        text: $this.children('option').eq(i).text(),
                        rel: $this.children('option').eq(i).val()
                    }).appendTo($list);
                }
    
    
                // Cache the list items
                var $listItems = $list.children('li');
                $styledSelect.click(function(e) {
                    e.stopPropagation();
                    $('div.styledSelect.active').each(function() {
                        $(this).removeClass('active').next('ul.options-box').hide();
                    });
                    $(this).toggleClass('active').next('ul.options-box').toggle();
                });
                if ($(this).children('option').attr('disabled')) {
                    $listItems.each(function(index, val) {
                        if (index == 0) {
                            $(this).attr('disabled', 'disabled');
                            $(this).css({
                                'background-color': '#ccc',
                                "pointer-events": "none",
                                "color": "white",
                                "cursor": "pointer"
                            });
                        }
                    });
                }
                $listItems.click(function(e) {
                    if (!$(this).attr('disabled')) {
                        $list.hide();
                    } else {
                        return;
                    }
                    e.stopPropagation();
                    $styledSelect.text($(this).text()).removeClass('active');
                    $this.val($(this).attr('rel'));
                    // select option add select
                    $('#' + $this.attr('id')).find("option[value=" + $this.val() + "]").attr("selected", 'selected');
                    // This is selct id and choose value
                    selectValues[$this.attr('id')] = $this.val();
                });
    
                // Hide the ul when user click the outside
                $(document).click(function() {
                    $styledSelect.removeClass('active');
                    $list.hide();
                });
            });
            return {
                selectValues: selectValues
            }
        }());
        </script>
        <script>
        </script>
    </body>
    
    </html>
    

      

  • 相关阅读:
    Docker
    springboot与缓存
    微信小程序资源
    Docker的使用及注意事项
    xml解析
    Intellij Idea2018破解教程(激活到2100年)
    natapp内网映射
    HEAD detached from XXX
    JSON语法
    关于苹果、奔驰、杜蕾斯这些红极一时的品牌
  • 原文地址:https://www.cnblogs.com/zerohu/p/6724394.html
Copyright © 2011-2022 走看看