Создаем выезжающий блок меню с помощью jQuery и CSS3 — 9 Января 2014
Мы начнем с назначения стилей ненумерованному списку:
ul.sdt_menu{
margin:0;
padding:0;
list-style: none;
font-family:"Myriad Pro", "Trebuchet MS", sans-serif;
font-size:14px;
width:1020px;
}Мы в целом хотим отменить оформление текста и подчеркивание, применяемые по умолчанию, для всех элементов ссылок в нашем меню:
ul.sdt_menu a{
text-decoration:none;
outline:none;
}Наши элементы списка будут всплывать влево и будут иметь относительное позиционирование, так как мы хотим использовать абсолютное позиционирование для элементов внутри. Если мы не настроим так, то элементы с абсолютным позиционированием будут относительными для всей страницы:
ul.sdt_menu li{
float:left;
width:170px;
height:85px;
position:relative;
cursor:pointer;
}Стиль для главного элемента ссылки, в котором у нас есть два тега span для названия и описания, будет таким:
ul.sdt_menu li > a{ position:absolute; top:0px; left:0px; width:170px; height:85px; z-index:12; background:transparent url(../images/overlay.png) no-repeat bottom right; -moz-box-shadow:0px 0px 2px #000; -webkit-box-shadow:0px 0px 2px #000; box-shadow:0px 0px 2px #000; }
Обратите внимания на z-index: мы определим порядок наложения для всех важных элементов так, чтобы элементы справа оставались сверху.
Мы используем фоновое изображение, которое создает эффект стекла с полупрозрачным градиентом. Использование фонового узора, например, дерева, как в примере, создаст красивый эффект. Обязательно попробуйте разные текстуры, это выглядит изумительно!
Вы так же можете поиграть с тенями: меняя значения на 2px 2px 6px #000 inset, вы получите очень милый эффект.
Изображение будет иметь такие стили:
ul.sdt_menu li a img{
border:none;
position:absolute;
width:0px;
height:0px;
bottom:0px;
left:85px;
z-index:100;
-moz-box-shadow:0px 0px 4px #000;
-webkit-box-shadow:0px 0px 4px #000;
box-shadow:0px 0px 4px #000;
} Мы хотим анимировать изображение, чтобы оно поднималось снизу, поэтому мы позиционируем его абсолютно, используя низ как точку отсчета.
И добавим изящные тени со всех сторон. Первые два значения — нули, это распределит тени равномерно вокруг изображения. Мы также используем это в элементе ссылки. Эта равномерная тень может быть использована, когда Вы хотите создать эффект светящейся рамки. Преимущество в том, что теней как бы нет, их не нужно принимать в расчет для вычисления ширины и высоты элементов. Неудобство на данный момент в том, что CSS3 не поддерживается в браузере Internet Explorer.
Родительский объект для тегов span названия и описания будет иметь такой стиль:
ul.sdt_menu li span.sdt_wrap{
position:absolute;
top:25px;
left:0px;
width:170px;
height:60px;
z-index:15;
}После этого мы определим стиль для серого выезжающего блока. Мы установим значение его высоты в 0 и спозиционируем его таким образом, чтобы нам осталось только увеличить его высоту в анимации:
ul.sdt_menu li span.sdt_active{ position:absolute; background:#111; top:85px; width:170px; height:0px; left:0px; z-index:14; -moz-box-shadow:0px 0px 4px #000 inset; -webkit-box-shadow:0px 0px 4px #000 inset; box-shadow:0px 0px 4px #000 inset; }
Общие стили для тегов span и ссылок в блоках будут такими:
ul.sdt_menu li span span.sdt_link,
ul.sdt_menu li span span.sdt_descr,
ul.sdt_menu li div.sdt_box a{
margin-left:15px;
text-transform:uppercase;
text-shadow:1px 1px 1px #000;
} Название и описание будут иметь такой стиль:
ul.sdt_menu li span span.sdt_link{
color:#fff;
font-size:24px;
float:left;
clear:both;
}
ul.sdt_menu li span span.sdt_descr{
color:#0B75AF;
float:left;
clear:both;
width:155px;
font-size:10px;
letter-spacing:1px;
}Блок подменю будет изначально спрятан под серым блоком. Затем мы анимируем его движение вправо или влево в зависимости от того, где мы находимся. Если мы, например, наведем указатель мыши на последний элемент, мы хотим анимировать движение блока этого подменю влево, в остальных случаях мы хотим анимировать его движение вправо.
ul.sdt_menu li div.sdt_box{
display:block;
position:absolute;
width:170px;
overflow:hidden;
height:170px;
top:85px;
left:0px;
display:none;
background:#000;
}
ul.sdt_menu li div.sdt_box a{
float:left;
clear:both;
line-height:30px;
color:#0B75AF;
}
У первой ссылки в подменю должен быть внешний верхний отступ:
ul.sdt_menu li div.sdt_box a:first-child{
margin-top:15px;
}
ul.sdt_menu li div.sdt_box a:hover{
color:#fff;
}И это все со стилями! Давайте добавим магию!
PHP в связке с jQuery
В заметке я поделюсь с вами несколькими решениями, которые помогут автоматизировать ваш сайт с помощью одновременного использования PHP и jQuery. В заметке представлены: формы регистрации/авторизации, автоматизированные jQuery галереи, ajax-чат, система комментирования, эффектная корзина заказов и многое другое. Скачивайте, экспериментируйте, наслаждайтесь результатом.
Внимание: все ссылки с демонстрацией скриптов откроются в новом окне, ссылки для скачивания исходников — прямые.
1. Страница-заглушка «Сайт в разработке»
На странице реализована возможность отправить е-мейл адрес, который записывается в базу данных и на который можно будет выслать уведомление об открытии сайта. Также страница украшена небольшим слайд-шоу, реализованном на базе jQuery плагина Nivo Slider v. 2.3.
Демо
Скачать
2. Отличный ajax-чат с применением jQuery и CSS3
Перед тем как начать общение посетитель должен ввести свой ник и e-mail. В правой колонке показано, сколько человек авторизованы в чате. Используемые технологии: PHP, MySQL, jQuery, CSS.
Демо
Скачать
3. Выезжающая PHP форма обратной связи
Подобное решение можно использовать для того, чтобы дать посетителю возможность быстро связаться с владельцем сайта с любой страницы.
Демо
Скачать
4. Реализация страницы «Предложить по проекту»
Посетители могут добавить новое предложение либо проголосовать за уже существующее.
Отличное решение для тех, кто хочет узнать мнение своей аудитории о сайте. Также эту страницу можно использовать чтобы накопить новые идеи для дальнейшего развития вашего проекта. Используемые технологии: PHP, MySQL, jQuery, CSS
Демо
Скачать
5. Система Ajax комментирования
Простая система комментирования на Ajax с проверкой правильности ввода информации. Комментарии хранятся в базе данных. Реализовано с использованием: PHP, MySQL, CSS, jQuery.
Демо
Скачать
6. PHP форма входа с использованием jQuery и CSS3
Форма с проверкой правильности ввода информации.
Демо
Скачать
7. Счетчик количества скачиваний файла
При нажатии на кнопку «Download» или на ссылку для скачивания файла, счетчик автоматически увеличится на единицу. Используемые технологии: PHP, MySQL, CSS.
Демо
Скачать
8. Заметки на странице с использованием PHP
Использованные технологии: PHP, jQuery, CSS.
Демо
Скачать
9. PHP форма регистрации в стиле Facebook
Симпатичная форма регистрации, реализованная с помощью CSS, PHP и jQuery.
Демо
Скачать
10. Простой Ajax сайт
При переходе по пунктам меню содержимое подгружается без перезагрузки страницы. Используемые технологии: PHP, jQuery, CSS.
Демо
Скачать
11. Автоматизированная jQuery галерея
PHP скрипт сканирует папку, в которую вы записываете изображения, и выводит их миниатюры на странице. При нажатии на изображение увеличение происходит с известным анимированным эффектом LightBox. Очень удобно то, что вывод изображений осуществляется автоматически, вам достаточно лишь поместить необходимое фото в папку «gallery», в которой должны хранится изображения для галереи.
Демо
Скачать
12. Эффектная Ajax корзина заказов для интернет-магазина
При наведении курсора мыши на товар отображается его название, описание и цена.
Добавление товаров в корзину производится путем перетаскивания товара на корзину. В блоке с корзиной можно изменить количество выбранного товара. Там же отображается общая стоимость и кнопка «Заказать». Используемые технологии: PHP, MySQL, jQuery, CSS.
Демо
Скачать
13. Контактная форма «Fancy AJAX Contact Form»
Симпатичная аккуратная PHP форма обратной связи с проверкой правильности ввода информации. Технологии: CSS, PHP, jQuery.
Демо
Скачать
14. Потрясающий слайдер
Слайдер генерируется автоматически. Данные с названием товара, описанием, ссылкой и адресом изображения берутся из файла slider.db.txt. Используемые технологии: CSS, PHP, jQuery.
Демо
Скачать
15. Система авторизации/регистрации на сайте
Выезжающий блок авторизации/регистрации на сайте. Используемые технологии: PHP, MySQL, jQuery, CSS.
Демо
Скачать
16. Удивительная автоматизированная CSS3 lightbox галерея
Скрипт сканирует папку с изображениями на вашем сервере и имеющиеся в ней фотографии отображает на странице в виде стопки фотографий.
Фотографии можно перетаскивать по экрану с помощью мышки. При нажатии на изображение оно увеличивается с использованием плагина fancybox. Используемые технологии: CSS, PHP, jQuery.
Демо
Скачать
17. Необычное голосование с использованием jQuery
Очень интересное решение для реализации голосования на сайте. Перетаскивая вверх и вниз блоки, схватив мышкой за изображения, можно расположить их на странице в любой последовательности. Чем выше вы оставите блок, тем лучше его оценили и, соответственно, если блок разместить в самом низу, значит, он меньше всего вам понравился. После того, как вы расставите блоки в нужной последовательности, необходимо нажать на кнопку «Submit poll», чтобы голос был учтен. На странице с результатами отображаются результаты голосования и количество проголосовавших посетителей. Используемые технологии: CSS, PHP, MySQL, jQuery.
Демо
Скачать
html — Вертикальное всплывающее меню с чистым CSS
Задать вопрос
спросил
Изменено 7 лет, 11 месяцев назад
Просмотрено 2к раз
Пожалуйста, проверьте приведенный ниже код.
.
<голова>
<мета-кодировка="utf-8">
навигация при наведении
<мета-имя="описание" содержание="">
<стиль>
HTML, тело {
высота: 100%;
маржа: 0;
заполнение: 0;
}
.menuContainer {
ширина: 100 пикселей;
высота:100вх;
фон:#ccc;
z-индекс: 1;
}
.menuContainer ул {
отступ: 20px 0 0 0;
маржа: 0;
}
.menuContainer ul li {
отступ: 10 пикселей;
маржа: 0;
стиль списка: нет;
нижняя граница: сплошная 1px # 000;
семейство шрифтов: 'Arial';
размер шрифта: 16 пикселей;
фон:#00ACD6;
положение: родственник;
}
.
menuContainer ul li:hover{
фон:#00A65A;
курсор:указатель;
}
.menuContainer ul li a{
текстовое оформление: нет;
цвет:#000;
}
.menuContainer ul li: наведите курсор на {
текстовое оформление: нет;
цвет:#fff;
}
.menuContainer ul li a:after{
содержание:' •'
}
.menuContainer ул ли ул {
положение: абсолютное;
верх:-20px;
слева:-100px;
высота:100вх;
ширина: 0 пикселей;
z-индекс:-1;
-webkit-transition: ширина 0,4с, слева 0,4с;
-o-переход: ширина 0,4с, левая 0,4с;
переход: ширина 0,4с, слева 0,4с;
}
.menuContainer ul li: hover ul {
слева: 100 пикселей;
ширина: 100 пикселей;
}
стиль> голова>
<тело>
<дел>
<ул>
Здесь проблема с ‘z-индексом’.
Из-за этого, когда я навожу курсор на «li», подменю открывается, но скрывается, когда я навожу указатель мыши на следующий «li»
Но удаление «z-индекса» или сохранение одного и того же «z-индекса» для обоих « container» и «ul li ul» отлично работают. Но подменю анимируется поверх главного меню.
Мне нужно, чтобы подменю располагалось за контейнером. Каков будет обходной путь для этого…
Проверьте скрипку для демонстрации http://jsfiddle.net/a92c03zj/1/
Заранее спасибо…
- HTML
- CSS
2
проверьте это:
.menuContainer ul li ul {
положение: абсолютное;
переполнение: скрыто;
верх:-20px;
слева: 100 пикселей;
высота:100вх;
ширина: 0 пикселей;
z-индекс: 0;
-webkit-transition: ширина 0,4 с;
-о-переход: ширина 0,4с;
переход: ширина 0,4 с;
}
.menuContainer ul li: hover ul {
ширина: 100 пикселей;
z-индекс: 1;
}
Просто замените эти строки кода своими, и все должно работать так, как вы хотели.
overflow:hidden «, чтобы текст не сжимался. Кроме того, поскольку теперь мы просто анимируем ширину, левая позиция изначально установлена на 100 пикселей. Последнее изменение, которое я сделал, заключалось в изменении z-индекса при наведении, поэтому что «старый» выпадающий список не анимируется поверх «нового»2
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Как создать вертикальное всплывающее меню с помощью CSS?
- Дом
- Блоги
- УСБ
Опубликовано: 03 августа 2013 г.
Сообщение от Энди | 70975 просмотров 3 лайка 3 избранных 28 комментариев
Этот туториал покажет вам, как шаг за шагом создать меню веб-дизайна в вертикальной компоновке css. См. демонстрацию ниже:
Сначала создайте html-файл с именем css_flyoutverticalmenu.html и скопируйте следующий код.
<дел>
<ул>

sdt_menu li > a{
position:absolute;
top:0px;
left:0px;
width:170px;
height:85px;
z-index:12;
background:transparent url(../images/overlay.png) no-repeat bottom right;
-moz-box-shadow:0px 0px 2px #000;
-webkit-box-shadow:0px 0px 2px #000;
box-shadow:0px 0px 2px #000;
}
sdt_menu li span.sdt_active{
position:absolute;
background:#111;
top:85px;
width:170px;
height:0px;
left:0px;
z-index:14;
-moz-box-shadow:0px 0px 4px #000 inset;
-webkit-box-shadow:0px 0px 4px #000 inset;
box-shadow:0px 0px 4px #000 inset;
}
css. Поместите этот файл в ту же папку, что и файл html, который вы создали выше.
*/
#menuwrapper ul li: hover ul{
слева: 150 пикселей;
верх: 0px;
дисплей:блок;
}
/* применяем другой цвет фона к пунктам меню 2-го уровня*/
#menuwrapper уль ли уль ли {
цвет фона:#cae25a;
}
/* Меняем цвет фона для подменю уровня 2 при наведении на меню */
#menuwrapper ul li:hover ul li:hover{
цвет фона:#b1b536;
}
/* Настраиваем цвет ссылок 2-го уровня */
#menuwrapper уль ли уль ли а{
цвет:#454444;
дисплей: встроенный блок;
ширина: 120 пикселей;
}
/**** МЕНЮ ТРЕТИЙ УРОВЕНЬ ****/
/* Нам нужно скрыть 3-е меню при наведении курсора на меню первого уровня */
#menuwrapper ul li: hover ul li ul{
положение: абсолютное;
дисплей:нет;
}
/* Мы показываем меню третьего уровня только тогда, когда они наводят курсор на родительское меню второго уровня */
#menuwrapper ul li: hover ul li: hover ul {
дисплей:блок;
слева: 150 пикселей;
верх:0;
}
/* Изменяем цвет фона для подменю 3 уровня*/
#menuwrapper ul li: hover ul li: hover ul li {
фон:#86d3fa;
}
/* Меняем цвет фона для подменю уровня 3 при наведении на меню */
#menuwrapper ul li:hover ul li:hover ul li:hover{
фон:#358ebc;
}
/* Изменяем цвет ссылки 3 уровня */
#menuwrapper ul li: hover ul li: hover ul li a{
цвет:#ffffff;
}
/* Очистить поплавок */
.