25 января 2008 ~ 23 Комментария

Анимация при помощи спрайтов

spr

Ох, давненько я не писал о интересных реализациях меню. Сегодня мы создадим анимированное меню и за одно раскроем тему спрайтов, о которой, насколько помню, я писал лишь один раз.

Так вот, суть спрайтов — использование одного изображения как несколько изображений при помощи изменения backgroundPosition. Если Вы не поняли, то чуть позже при виде примеров будет намного понятней.

Для начала создадим каркас нашего меню.

<ul>
<li><a href="#">Меню 1</a></li>
<li><a href="#">Меню 2</a></li>
<li><a href="#">Меню</a></li>
</ul>

Теперь оформим его с помощью css.

ul {
     list-style:none;
     margin:0;
     padding:0;
}
li {
     float:left;
     width:100px;
     margin:0;
     padding:0;
     text-align:center;
}
li a {
     display:block;
     padding:5px 10px;
     height:100%;
     color:#FFF;
     text-decoration:none;
     border-right:1px solid #FFF;
}
li a {
     background:url(bg.jpg) repeat 0 0;
}
li a:hover {
     background-position:50px 0;
}

 

Хочу обратить ваше внимание на li a и li a:hover, при наведении на ссылку в меню, фон сдвинется на 50px. Это и есть спрайт.

Этот эффект уже придает динамичности нашему меню, но теперь мы еще добавим плавное изменение фона при помощи jQuery и плагина «Background-Position».

Подключаем библиотеку jQuery и нужный нам плагин.

Теперь изменяем Background-Position при помощи jQuery кода.

$('#nav a')
.css( {backgroundPosition: "0 0"} )
.mouseover(function(){
     $(this).stop().animate(
          {backgroundPosition:"(0 -250px)"},
          {duration:500})
})

.mouseout(function(){
     $(this).stop().animate(
          {backgroundPosition:"(0 0)"},
          {duration:500})
})

Этот код будет плавно сдвигать фон на 250px при наведении курсора с плавностью 500. Посмотреть примеры и скачать их вы можете ниже.

В принципе с помощью этого приема можно сделать множество разнообразных эффектов, так что добавляем его в свой портфель любимых приемов ;-)

Страничка плагина «Background-Position»

Посмотреть примеры

Скачать примеры

Источник статьи

23 Комментария для “Анимация при помощи спрайтов”

  1. ctapbiu 25 сентября 2008 at 14:40 Permalink

    странно
    пример чего-то не работает

  2. Артём Курапов 25 сентября 2008 at 14:46 Permalink

    Картинок фона нету, а так да, работает
    http://www.protofunc.com/scripts/jquery/backgroundPosition/

  3. Nickolay 25 сентября 2008 at 14:51 Permalink

    забавно.

    PS:// http://chernev.ru/spr_menu/ не работает

  4. WebApelsin 25 сентября 2008 at 14:55 Permalink

    Пример не работает в FF 3.0.2

  5. Я собственной персоной 25 сентября 2008 at 15:03 Permalink

    Прошу прощения, поправил.
    Свет отключился и картинки плохо залились.

  6. данила 25 сентября 2008 at 16:01 Permalink

    давно этим пользуюсь, тока не знал что это спрайты, штука хорошая

  7. Zodios 26 сентября 2008 at 15:45 Permalink

    Спасибо за интересные примеры менюшек. Возьму себе на вооружение. Только вот если каждый пункт меню реализован в виде отдельной картинки не очень хорошо получается.

  8. Frankie Wilde 26 сентября 2008 at 17:00 Permalink

    Супер! Оч понра! Спасибо!

  9. bukvoed 27 сентября 2008 at 17:30 Permalink

    Для li тоже стоит указать background (просто продублировать) – чтобы осел 6 не мигал (т.н. flickering effect).

  10. Иван 28 сентября 2008 at 22:48 Permalink

    Zodios А вы попробуйте поэксперементировать и вполне возможно вы сами сможете устранить этот недостаток.

  11. Никита 30 сентября 2008 at 20:43 Permalink

    А мне не понравились спрайты тем, что этовсё можно сделать и без JS. И без Flash, разумеется :)

  12. coldman 3 октября 2008 at 21:50 Permalink

    а два года назад без jQuery это вигледело так http://coldman.org.ua/example/menu/

  13. Sairus 17 октября 2008 at 13:57 Permalink

    Молодец!!! только чето неполучаеца.

  14. walkm2n 22 февраля 2009 at 4:46 Permalink

    только чето неполучаеца.

    Всё получается, и отлично работает. Спасибо

  15. Loa 26 марта 2009 at 15:52 Permalink

    Начала заниматься web-дизаином три дня назад, поэтому для Гуру вопрос может показаться немного странным, но все же а куда и как в этом замечательном коде вставить ссылки на странички, которые должны открываться при нажатии на это замечатьльное меню.
    Зараннее всем спасибо, не судите строго…

  16. елена 13 мая 2009 at 22:47 Permalink

    жесьть

  17. елена 13 мая 2009 at 23:08 Permalink

    я новая

  18. елена 14 мая 2009 at 23:07 Permalink

    Начала заниматься web-дизаином три дня назад, поэтому для Гуру вопрос может показаться немного странным, но все же а куда и как в этом замечательном коде вставить ссылки на странички, которые должны открываться при нажатии на это замечатьльное меню.
    Зараннее всем спасибо, не судите строго…

    класс

  19. Holy Diver 5 июня 2009 at 13:38 Permalink

    Шикарное меню, особенно где сверху опускается волна! Не думал что, всё настолько просто.

  20. Хидан 9 сентября 2009 at 22:18 Permalink

    Оооо… очень нужно и полезно! Спасибо большое

  21. Vitalinka 5 ноября 2009 at 15:55 Permalink

    Все получилось, спасибо.

  22. Эрик 11 ноября 2009 at 4:21 Permalink

    Анимация придаёт ссылкам и кнопкам более мягкий, нежный и приятный эффект


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