20 декабря 2013
4182
выпадающее меню, css

Выпадающее меню CSS

CSS
Демонстрация » Скачать »

В данном уроке Вы узнаете как сделать выпадающее меню на CSS.  Перейдем к самой структуре, для начала нужно создать сам выпадающий блок при помощи JavaScript, точнее саму функцию анимации блока. Код приведен ниже.

 

function anychange (objName) {
   if ( $(objName).css('display') == 'none' ) {
   $(objName).animate({width: 'show'}, 700);
   } else {
   $(objName).animate({width: 'hide'}, 700);
   }
}

 

При помощи методов Show и Hide задается плавность выпадания блока. Число после скобки влияет на длительность анимации в миллисекундах. Данную функцию мы вызываем при нажатии на ссылку.

 

<a href="#" onclick="anychange('#divId'); return false">Открыть/Закрыть</a> 

 

 

HTML-код блока.

 

<div id="divId"></div>

 

Далее перейдем к созданию и размещению меню в нашем выпадающем блоке. Сам блок, это ни что иное как обычный DIV, в нем мы и размещаем нужный нам HTML-код для меню.

Меню написано на CSS, код которого по желанию можно отредактировать, добавив свои визуальные эффекты.

 

#nav{
float:left;
width:100%;
list-style:none;
font-weight:bold;
margin-bottom:10px;
}

#nav li{
float:left;
margin-right:10px;
position:relative;
display:block;
}

#nav li a{
display:block;
padding:5px;
color:#fff;
background:#333;
text-decoration:none;

text-shadow:1px 1px 1px rgba(0,0,0,0.75);
-moz-border-radius:2px;
-webkit-border-radius:2px;
border-radius:2px;
}

#nav li a:hover{
color:#fff;
background:#6b0c36;
background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
text-decoration:underline;
}


#nav ul{
list-style:none;
position:absolute;
left:-9999px; /* Скрываем за экраном, когда не нужно (данный метод лучше, чем display:none;) */
opacity:0;
-webkit-transition:0.25s linear opacity;
}

#nav ul li{
padding-top:1px; 
float:none;
background:url(dot.gif);
}

#nav ul a{
white-space:nowrap; /* Останавливаем перенос текста и создаем многострочный выпадающий пункт */
display:block;
}
#nav li:hover ul{ 
left:0; 
opacity:1; 
}
#nav li:hover a{ 
background:#6b0c36;
background:rgba(107,5,54,0.75);
text-decoration:underline;
}

#nav li:hover ul a{ 
text-decoration:none;
-webkit-transition:-webkit-transform 0.075s linear;
}

#nav li:hover ul li a:hover{
background:#333;
background:rgba(51,51,51,0.75); 
text-decoration:underline;
-moz-transform:scale(1.05);
-webkit-transform:scale(1.05);
}

 

Вот такой вот несложный способ сделать сайт более интерактивным. Кстати, имеются и другие разновидности меню, например: круговое меню на CSS, меню для сайта Superfish, адаптивное меню SlickNav и другие. Благодарю всех за внимание!