8889841ccss/nice-select.css000064400000007647150427310270010260 0ustar00.nice-select { -webkit-tap-highlight-color: transparent; background-color: #fff; border-radius: 5px; border: solid 1px #e8e8e8; box-sizing: border-box; clear: both; cursor: pointer; display: block; float: left; font-family: inherit; font-size: 14px; font-weight: normal; height: 42px; line-height: 40px; outline: none; padding-left: 18px; padding-right: 30px; position: relative; text-align: left !important; -webkit-transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; white-space: nowrap; width: auto; } .nice-select:hover { border-color: #dbdbdb; } .nice-select:active, .nice-select.open, .nice-select:focus { border-color: #999; } .nice-select:after { border-bottom: 2px solid #999; border-right: 2px solid #999; content: ''; display: block; height: 5px; margin-top: -4px; pointer-events: none; position: absolute; right: 12px; top: 50%; -webkit-transform-origin: 66% 66%; -ms-transform-origin: 66% 66%; transform-origin: 66% 66%; -webkit-transform: rotate(45deg); -ms-transform: rotate(45deg); transform: rotate(45deg); -webkit-transition: all 0.15s ease-in-out; transition: all 0.15s ease-in-out; width: 5px; } .nice-select.open:after { -webkit-transform: rotate(-135deg); -ms-transform: rotate(-135deg); transform: rotate(-135deg); } .nice-select.open .list { opacity: 1; pointer-events: auto; -webkit-transform: scale(1) translateY(0); -ms-transform: scale(1) translateY(0); transform: scale(1) translateY(0); } .nice-select.disabled { border-color: #ededed; color: #999; pointer-events: none; } .nice-select.disabled:after { border-color: #cccccc; } .nice-select.wide { width: 100%; } .nice-select.wide .list { left: 0 !important; right: 0 !important; } .nice-select.right { float: right; } .nice-select.right .list { left: auto; right: 0; } .nice-select.small { font-size: 12px; height: 36px; line-height: 34px; } .nice-select.small:after { height: 4px; width: 4px; } .nice-select.small .option { line-height: 34px; min-height: 34px; } .nice-select .list { background-color: #fff; border-radius: 5px; box-shadow: 0 0 0 1px rgba(68, 68, 68, 0.11); box-sizing: border-box; margin-top: 4px; opacity: 0; overflow: hidden; padding: 0; pointer-events: none; position: absolute; top: 100%; left: 0; -webkit-transform-origin: 50% 0; -ms-transform-origin: 50% 0; transform-origin: 50% 0; -webkit-transform: scale(0.75) translateY(-21px); -ms-transform: scale(0.75) translateY(-21px); transform: scale(0.75) translateY(-21px); -webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out; z-index: 9; } .nice-select .list:hover .option:not(:hover) { background-color: transparent !important; } .nice-select .option { cursor: pointer; font-weight: 400; line-height: 40px; list-style: none; min-height: 40px; outline: none; padding-left: 18px; padding-right: 29px; text-align: left; -webkit-transition: all 0.2s; transition: all 0.2s; } .nice-select .option:hover, .nice-select .option.focus, .nice-select .option.selected.focus { background-color: #f6f6f6; } .nice-select .option.selected { font-weight: bold; } .nice-select .option.disabled { background-color: transparent; color: #999; cursor: default; } .no-csspointerevents .nice-select .list { display: none; } .no-csspointerevents .nice-select.open .list { display: block; } js/jquery.nice-select.js000064400000013301150427310270011226 0ustar00/* jQuery Nice Select - v1.1.0 https://github.com/hernansartorio/jquery-nice-select Made by Hernán Sartorio */ (function($) { $.fn.niceSelect = function(method) { // Methods if (typeof method == 'string') { if (method == 'update') { this.each(function() { var $select = $(this); var $dropdown = $(this).next('.nice-select'); var open = $dropdown.hasClass('open'); if ($dropdown.length) { $dropdown.remove(); create_nice_select($select); if (open) { $select.next().trigger('click'); } } }); } else if (method == 'destroy') { this.each(function() { var $select = $(this); var $dropdown = $(this).next('.nice-select'); if ($dropdown.length) { $dropdown.remove(); $select.css('display', ''); } }); if ($('.nice-select').length == 0) { $(document).off('.nice_select'); } } else { console.log('Method "' + method + '" does not exist.') } return this; } // Hide native select this.hide(); // Create custom markup this.each(function() { var $select = $(this); if (!$select.next().hasClass('nice-select')) { create_nice_select($select); } }); function create_nice_select($select) { $select.after($('
') .addClass('nice-select') .addClass($select.attr('class') || '') .addClass($select.attr('disabled') ? 'disabled' : '') .attr('tabindex', $select.attr('disabled') ? null : '0') .html('') ); var $dropdown = $select.next(); var $options = $select.find('option'); var $selected = $select.find('option:selected'); $dropdown.find('.current').html($selected.data('display') || $selected.text()); $options.each(function(i) { var $option = $(this); var display = $option.data('display'); $dropdown.find('ul').append($('
  • ') .attr('data-value', $option.val()) .attr('data-display', (display || null)) .addClass('option' + ($option.is(':selected') ? ' selected' : '') + ($option.is(':disabled') ? ' disabled' : '')) .html($option.text()) ); }); } /* Event listeners */ // Unbind existing events in case that the plugin has been initialized before $(document).off('.nice_select'); // Open/close $(document).on('click.nice_select', '.nice-select', function(event) { var $dropdown = $(this); $('.nice-select').not($dropdown).removeClass('open'); $dropdown.toggleClass('open'); if ($dropdown.hasClass('open')) { $dropdown.find('.option'); $dropdown.find('.focus').removeClass('focus'); $dropdown.find('.selected').addClass('focus'); } else { $dropdown.focus(); } }); // Close when clicking outside $(document).on('click.nice_select', function(event) { if ($(event.target).closest('.nice-select').length === 0) { $('.nice-select').removeClass('open').find('.option'); } }); // Option click $(document).on('click.nice_select', '.nice-select .option:not(.disabled)', function(event) { var $option = $(this); var $dropdown = $option.closest('.nice-select'); $dropdown.find('.selected').removeClass('selected'); $option.addClass('selected'); var text = $option.data('display') || $option.text(); $dropdown.find('.current').text(text); $dropdown.prev('select').val($option.data('value')).trigger('change'); }); // Keyboard events $(document).on('keydown.nice_select', '.nice-select', function(event) { var $dropdown = $(this); var $focused_option = $($dropdown.find('.focus') || $dropdown.find('.list .option.selected')); // Space or Enter if (event.keyCode == 32 || event.keyCode == 13) { if ($dropdown.hasClass('open')) { $focused_option.trigger('click'); } else { $dropdown.trigger('click'); } return false; // Down } else if (event.keyCode == 40) { if (!$dropdown.hasClass('open')) { $dropdown.trigger('click'); } else { var $next = $focused_option.nextAll('.option:not(.disabled)').first(); if ($next.length > 0) { $dropdown.find('.focus').removeClass('focus'); $next.addClass('focus'); } } return false; // Up } else if (event.keyCode == 38) { if (!$dropdown.hasClass('open')) { $dropdown.trigger('click'); } else { var $prev = $focused_option.prevAll('.option:not(.disabled)').first(); if ($prev.length > 0) { $dropdown.find('.focus').removeClass('focus'); $prev.addClass('focus'); } } return false; // Esc } else if (event.keyCode == 27) { if ($dropdown.hasClass('open')) { $dropdown.trigger('click'); } // Tab } else if (event.keyCode == 9) { if ($dropdown.hasClass('open')) { return false; } } }); // Detect CSS pointer-events support, for IE <= 10. From Modernizr. var style = document.createElement('a').style; style.cssText = 'pointer-events:auto'; if (style.pointerEvents !== 'auto') { $('html').addClass('no-csspointerevents'); } return this; }; }(jQuery));js/jquery.nice-select.min.js000064400000005576150427310270012027 0ustar00/* jQuery Nice Select - v1.0 https://github.com/hernansartorio/jquery-nice-select Made by Hernán Sartorio */ !function(e){e.fn.niceSelect=function(t){function s(t){t.after(e("
    ").addClass("nice-select").addClass(t.attr("class")||"").addClass(t.attr("disabled")?"disabled":"").attr("tabindex",t.attr("disabled")?null:"0").html(''));var s=t.next(),n=t.find("option"),i=t.find("option:selected");s.find(".current").html(i.data("display")||i.text()),n.each(function(t){var n=e(this),i=n.data("display");s.find("ul").append(e("
  • ").attr("data-value",n.val()).attr("data-display",i||null).addClass("option"+(n.is(":selected")?" selected":"")+(n.is(":disabled")?" disabled":"")).html(n.text()))})}if("string"==typeof t)return"update"==t?this.each(function(){var t=e(this),n=e(this).next(".nice-select"),i=n.hasClass("open");n.length&&(n.remove(),s(t),i&&t.next().trigger("click"))}):"destroy"==t?(this.each(function(){var t=e(this),s=e(this).next(".nice-select");s.length&&(s.remove(),t.css("display",""))}),0==e(".nice-select").length&&e(document).off(".nice_select")):console.log('Method "'+t+'" does not exist.'),this;this.hide(),this.each(function(){var t=e(this);t.next().hasClass("nice-select")||s(t)}),e(document).off(".nice_select"),e(document).on("click.nice_select",".nice-select",function(t){var s=e(this);e(".nice-select").not(s).removeClass("open"),s.toggleClass("open"),s.hasClass("open")?(s.find(".option"),s.find(".focus").removeClass("focus"),s.find(".selected").addClass("focus")):s.focus()}),e(document).on("click.nice_select",function(t){0===e(t.target).closest(".nice-select").length&&e(".nice-select").removeClass("open").find(".option")}),e(document).on("click.nice_select",".nice-select .option:not(.disabled)",function(t){var s=e(this),n=s.closest(".nice-select");n.find(".selected").removeClass("selected"),s.addClass("selected");var i=s.data("display")||s.text();n.find(".current").text(i),n.prev("select").val(s.data("value")).trigger("change")}),e(document).on("keydown.nice_select",".nice-select",function(t){var s=e(this),n=e(s.find(".focus")||s.find(".list .option.selected"));if(32==t.keyCode||13==t.keyCode)return s.hasClass("open")?n.trigger("click"):s.trigger("click"),!1;if(40==t.keyCode){if(s.hasClass("open")){var i=n.nextAll(".option:not(.disabled)").first();i.length>0&&(s.find(".focus").removeClass("focus"),i.addClass("focus"))}else s.trigger("click");return!1}if(38==t.keyCode){if(s.hasClass("open")){var l=n.prevAll(".option:not(.disabled)").first();l.length>0&&(s.find(".focus").removeClass("focus"),l.addClass("focus"))}else s.trigger("click");return!1}if(27==t.keyCode)s.hasClass("open")&&s.trigger("click");else if(9==t.keyCode&&s.hasClass("open"))return!1});var n=document.createElement("a").style;return n.cssText="pointer-events:auto","auto"!==n.pointerEvents&&e("html").addClass("no-csspointerevents"),this}}(jQuery);