Стилно изскачащо меню - CSS-трикове

Anonim

Тази идея е от Veer.com и как се справят с падащите менюта за неща като размери на тениските. Благодаря на Денис Са.

Преглед на демонстрацията

HTML

Ще обгърнем обичайно въвеждане на текст вътре в, който също съдържа неуреден списък, който ще представлява стойностите за изскачащото меню.

 
  • Male - M
  • Female - M
  • Male - S
  • Female - S

CSS

Списъците ще бъдат скрити по подразбиране, но все пак всички оформени и готови за работа, когато кликването ги задейства за показване.

.size ( position:relative ) .size .field ( width:300px; background:#EC6603; color:#fff; padding:5px; border:none; cursor:pointer; font-family:'lucida sans unicode',sans-serif; font-size:1em; border:solid 1px #EC6603; -webkit-transition: all .4s ease-in-out; transition: all .4s ease-in-out; ) .size .field:hover ( border:solid 1px #fff; -moz-box-shadow:0 0 5px #999; -webkit-box-shadow:0 0 5px #999; box-shadow:0 0 5px #999 ) .size>ul.list ( display:none; position:absolute; left:30px; top:-30px; z-index:999; width:300px; margin:0; padding:10px; list-style:none; background:#fff; color:#333; -moz-border-radius:5px; -webkit-border-radius:5px; border-radius:5px; -moz-box-shadow:0 0 5px #999; -webkit-box-shadow:0 0 5px #999; box-shadow:0 0 5px #999 ) .size>ul.list li ( padding:10px; border-bottom: solid 1px #ccc; ) .size>ul.list li:hover ( background:#EC6603; color:#fff; ) .size>ul.list li:last-child ( border:none )

jQuery

Ще хвърлим един бърз плъгин, така че тази функционалност да може да бъде извикана във всяка обвивка на div, която съдържа същата настройка на HTML. =

(function($)( $.fn.styleddropdown = function()( return this.each(function()( var obj = $(this) obj.find('.field').click(function() ( //onclick event, 'list' fadein obj.find('.list').fadeIn(400); $(document).keyup(function(event) ( //keypress event, fadeout on 'escape' if(event.keyCode == 27) ( obj.find('.list').fadeOut(400); ) )); obj.find('.list').hover(function()( ), function()( $(this).fadeOut(400); )); )); obj.find('.list li').click(function() ( //onclick event, change field value with selected 'list' item and fadeout 'list' obj.find('.field') .val($(this).html()) .css(( 'background':'#fff', 'color':'#333' )); obj.find('.list').fadeOut(400); )); )); ); ))(jQuery);

Употреба

След това просто извикваме приставката, когато DOM е готов, разбира се.

$(function()( $('.size').styleddropdown(); ));