[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Красивое меню для Вашего сайта!
CEZARДата: Воскресенье, 05.06.2011, 17:02 | Сообщение # 1
Генерал-майор
Группа: Проверенные
Сообщений: 460
Награды: 1
Репутация: 17
Статус: Offline


Подобное меню способно украсить любой сайт.

Приступим...

HTML

Единственное что нам понадобится для этого меню - это неупорядоченный список с ссылками и текстом внутри элементов списка:

Code
<ul id="navigation">  
  <li class="home"><a href=""><span>Home</span></a></li>  
  <li class="about"><a href=""><span>About</span></a></li>  
  <li class="search"><a href=""><span>Search</span></a></li>  
  <li class="photos"><a href=""><span>Photos</span></a></li>  
  <li class="rssfeed"><a href=""><span>Rss Feed</span></a></li>  
  <li class="podcasts"><a href=""><span>Podcasts</span></a></li>  
  <li class="contact"><a href=""><span>Contact</span></a></li>  
  </ul>


CSS
Для начала мы определяем свойства для списка

Code
ul#navigation {  
  position: fixed;  
  margin: 0px;  
  padding: 0px;  
  top: 0px;  
  right: 10px;  
  list-style: none;  
  z-index:999999;  
  width:721px;  
  }

Мы позиционируем список в правом верхнем углу страницы. Навигация должна быть всегда доступна пользователю, даже если он прокручивает страницу вниз. Поэтому мы фиксируем позиционирование. Все отступы и границы мы выставляем на 0. Навигация также должна быть поверх всех элементов на странице. Именно поэтому мы также выставляем высокой значение z-index. Также нам необходимо прописать ширину меню, чтобы элементы списка не наезжали друг на друга при изменении размера окна браузера.
Теперь давайте взглянем на свойства элементов списка:

Code
ul#navigation li {  
  width: 103px;  
  display:inline;  
  float:left;  
  }


Если Вы хотите, чтобы список показывался горизонтально, необходимо установить значение display на inline. После этого элементы списка будут отображаться рядом друг с другом, а не под.

Теперь посмотрим на свойства ссылок в элементах списка:

Code
ul#navigation li a {  
  display: block;  
  float: left;  
  margin-top: -2px;  
  width: 100px;  
  height: 25px;  
  background-color: #E7F2F9;  
  background-repeat: no-repeat;  
  background-position: 50% 10px;  
  border: 1px solid #BDDCEF;  
  text-decoration: none;  
  text-align: center;  
  padding-top: 80px;  
  }


Тут стоить упомянуть только свойство padding, которое помогает переместить текст ссылки в самый низ блока.

Давайте теперь добавим круглых углов (не будут работать в Internet Explorer) и прозрачности:

Code
ul#navigation li a {  
  display: block;  
  float:left;  
  margin-top: -2px;  
  width: 100px;  
  height: 25px;  
  background-color:#E7F2F9;  
  background-repeat:no-repeat;  
  background-position:50% 10px;  
  border:1px solid #BDDCEF;  
  text-decoration:none;  
  text-align:center;  
  padding-top:80px;  
  -moz-border-radius:0px 0px 10px 10px;  
  -webkit-border-bottom-right-radius: 10px;  
  -webkit-border-bottom-left-radius: 10px;  
  -khtml-border-bottom-right-radius: 10px;  
  -khtml-border-bottom-left-radius: 10px;  
  opacity: 0.7;  
  filter:progid:DXImageTransform.Microsoft.Alpha(opacity=70);  
  }


Последнее значение filter сделает меню прозрачным и в IE.

Теперь давайте позаботимся о красивых иконках:

Code
ul#navigation .home a{  
  background-image: url(../images/home.png);  
  }  
  ul#navigation .about a {  
  background-image: url(../images/id_card.png);  
  }  
  ul#navigation .search a {  
  background-image: url(../images/search.png);  
  }  
  ul#navigation .podcasts a {  
  background-image: url(../images/ipod.png);  
  }  
  ul#navigation .rssfeed a {  
  background-image: url(../images/rss.png);  
  }  
  ul#navigation .photos a {  
  background-image: url(../images/camera.png);  
  }  
  ul#navigation .contact a {  
  background-image: url(../images/mail.png);  
  }


При наведении мышки мы хотим, чтобы фоновый цвет менялся:

Code
ul#navigation li a:hover{  
  background-color:#CAE3F2;  
  }


Еще добавим немного стиля нашим текстовым блокам:

Code
ul#navigation li a span{  
  letter-spacing:2px;  
  font-size:11px;  
  color:#60ACD8;  
  text-shadow: 0 -1px 1px #fff;  
  }


Первым делом нам необходимо сделать, так чтобы элементы списка были спрятаны (похоже на клавиши рояля). Мы можем видеть только текст ссылки. При наведении на элемент, мы запускаем анимацию и показываем полностью блок с иконкой.

Code
$(function() {  
  var d=300;  
  $('#navigation a').each(function(){  
  $(this).stop().animate({  
  'marginTop':'-80px'  
  },d+=150);  
  });  

  $('#navigation > li').hover(  
  function () {  
  $('a',$(this)).stop().animate({  
  'marginTop':'-2px'  
  },200);  
  },  
  function () {  
  $('a',$(this)).stop().animate({  
  'marginTop':'-80px'  
  },200);  
  }  
  );  
  });


Скрипт устанавливает marginTop на -80 пикселей. Эффект для первого элемента должен продолжаться 300+150 миллисекунд и каждый следующий элемент должен исчезать с задержкой 150 миллисекунд.
После того, как мышку пользователь убирает - все возвращается на свои места.
 
  • Страница 1 из 1
  • 1
Поиск:

Copyright life-ucoz.my1.ri ©Life-uCoz.my1.ru
Бесплатный конструктор сайтовuCoz