Главная » 2013 Декабрь 2 » Навигация с эффектом лестницы
21:52 Навигация с эффектом лестницы | |||||||
Навигация с эффектом
лестницы В данном уроке мы разберем вопрос создания визуального
эффекта для навигационного меню. При наведении курсора мыши на пункт меню он
будет становиться самой "высокой" ступенькой лестницы, а пункты до и
после него будут ступеньками "ниже". Простой эффект, но он
встречается редко в разных проектах. Вероятно, основная причина - нет
возможности выбрать "предыдущий" элемент в CSS.
Можно выбрать "следующие" элементы в CSS. Можно
использовать обобщенный комбинатор соседей или соседние селекторы для
получения всех следующих элементов (которые можно выстроить в цепочку).
Но ни один из них не позволяет получать предыдущие элементы, чтобы построить
структуру, изображенную на рисунке, приведенном выше. Вместо того, изощряться с CSS для решения такой задачи,
применим технологию, которая действительно может выбрать предыдущий элемент:
jQuery. jQuery имеет функцию .prev() (а также несколько других подобных функций),
которая поможет нам получить то, что нужно.
Предположительно, нужно удалять все классы для всех
элементов в событии mouseleave. Значит, более эффективно будет наличие
указателя на все нужные элементы.
Установку можно сделать более эффективной. Использование
функций .next() и .prev() принуждает jQuery двигаться по структуре
DOM, чтобы вычислить нужное. Мы можем сразу выбрать элементы, основываясь на на
том, что уже выбрано, используя положение в наборе.
Функция .index() поможет нам определить место, а
функция .eq() выберет элемент на основе индекса.
CSS отвечает за дизайн Обратите внимание, что jQuery только добавляет и удаляет
классы. Именно в этом и заключается совместная работа JavaScript и интерфейса.
JavaScript отвечает за контролирование состояний, а CSS делает визуальные
изменения. Весь эффект лестницы основывается на следующих классах.
Верхняя ступенька (stair-1) увеличивается, смещается вправо
и имеет большую тень. Для каждой следующей ступеньки данные свойства немного
уменьшаются. Здесь можно сделать все, что угодно для совмещения с общим стилем
приложения. Плагин jQuery? Заголовок данного раздела подводит нас к интересной теме. Нужно ли делать плагин для описанного эффекта.? С одной
стороны, он сильно зависит от CSS. jQuery фактически только назначает и убирает
классы, а вся анимация и визуальные свойства размещаются в CSS. Тем не менее, мы сделаем плагин, так задача очень интересна. Опции плагина Мы сделаем простой набор доступных опций: сколько ступеней
используется в эффекте. Плагин будет вызываться для навигационного элемента,
который содержит только ссылку:
Затем в плагине, мы делаем переменную "stairs",
которая будет содержать либо переданное значение, либо значение по умолчанию.
Такой шаблон помогает автоматически устанавливать значение
переменной: если пользователь установил значения, используем их, а если нет -
берем значения по умолчанию. Цикл Для использования опции нужно запустить
цикл for столько раз, сколько имеется ступеней. Мы устанавливаем значения
индекса и проверяем, чтобы никогда не использовать для выбора отрицательных
значений.
Источник урока: css-tricks.com/stairway-navigation-a-jquery-plugin/ | |||||||
|
Всего комментариев: 0 | |