Интересные статьи

Создание навигации “волшебная... Такой “скользящий” стиль навигации существует довольно давно, мне всего лишь было нужно изменить...

Readmore

15 регулярных выражений PHP в помощь... Регулярные выражения – это очень полезный инструмент для разработчиков. С их помощью можно находить,...

Readmore

Создание формы со скользящими... Пару недель назад, я читал статью Люка Вроблевски. Для тех, кто еще не слышал о нем, Люк -  автор...

Readmore

Анимация jQuery: изучение за 7 шагов Небольшой штрих анимации может украсить любой, скучный интерфейс. В сегодняшней статье, вы узнаете,...

Readmore

Фантастическая CSS3 лайтбокс... С удовольствием принимаю эстафету по обзору полезных зарубежных ресурсов, предложенную блоггером...

Readmore

Очередной блог фрилансера Rss

Создаем эластичное меню из миниатюр

Дата публикации : 29-09-2009 | в рубрике : верстка, переводы

Метки: , , ,

4

homeЕще один интересный пример навигации – из миниатюр. У него есть как минимум два преимущества – работает просто и выглядит эффектно. Сделать такую навигацию под силу любому пользователю, поэтому сегодняшняя статья, скорее похожа на заметку, чем на полноценную инструкцию.

Итак, как обычно взгляните на конечный результат, и если понравилось, читатайте далее.

HTML

HTML очень простой. Каждый пункт меню представляет собой ссылку, внутри которой расположено изображение:

<div id="menuwrapper">
<div id="menu">
  <a class="menuitem" href="#">
      <img src="image.jpg" alt="" />
   </a><!--Шаблон для каждого пункта меню-->
</div>
</div>

CSS

Обычно, при ресайзе контейнера <div>, его высота увеличивается, причем он растет вниз. Однако, в нашем меню, нам нужно получить прямо противопложный результат – когда пользователь подводит мышью к миниатюре, она должна «вырасти», направляясь вверх (совсем как док в OSX). Для получения такого эффекта, мы будем использовать свойство position: fixed, которое поможет нам «зафиксировать» пункты меню по нижнему краю. Итак, вот какой будет CSS:

/* Контейнер, для нашего меню */
#menuwrapper{ position:relative; height:210px; }

/* Устанавливаем меню по нижнему краю родительского div-a */
#menu{position:absolute; bottom:0;}

/* Каждый пункт меню фиксируем по нижнему краю, и назначаем display:inline-block для создания эластичности */
.menuitem{ position:fixed relative; bottom:0px; display:inline-block; }

JQuery

jQuery в этом примере выполняет две функции:

  • уменьшает картинки при загрузке страницы
  • добавляет анимацию «растущей» картинке, при наведении мыши

Далее показан пример кода, который сможет все это реализовать:

$(document).ready(function(){
$('.menuitem img').animate({width: 100}, 0); //Уменьшаем все элементы меню

$('.menuitem').mouseover(function(){ //Когда мышь подводят к меню
gridimage = $(this).find('img'); //Назначаем цель в качестве переменной
gridimage.stop().animate({width: 200}, 150); //Анимация растягивания картинки до оригинального размера
})

.mouseout(function(){ //Когда мышь отводят от пункта меню
gridimage.stop().animate({width: 100}, 150); //Анимация возврата картинки к маленькому размеру
});
});

Internet Explorer

И все бы хорошо, но IE как всегда порадовал неприятным сюрпризом, для того чтобы ваше меню красиво ресайзилось в Internet Explorer, вам нужно добавить одну строчку кода в CSS:

 img { -ms-interpolation-mode: bicubic; } 

Вот и все, после этого, ваше меню готово к использованию.

Архив с приведенным примером.

Оригинал статьи «Sproing! – Make An Elastic Thumbnail Menu«, автор Sam Dunn

Похожие записи

Комментарии: (4)

какое милое меню =)
а не будет архивчика с результатом и примером ?=)

Будет, я совсем забыла про него.

спасииибо =)

Спасибо! Полезная примочка. Это и для превьюшек хорошо подойдет.
А насчет Invalid Explorer…
Коллеги, близок тот день, когда мы сможем забыть о нем. По статистике пользователей IE6 осталось менее 14%. И этот показатель падает!

Оставьте комментарий