Поиграем на аккордеоне? Создаем вертикальное раскрывающееся меню

Ну вот и подошел конец двухмесячному марафону у меня дома, который назывался ремонт! Столько всего нового узнал, что в пору открыть новый блог! С какой-то стороны, жаль, что не смог часто сюда писать, с другой — я отдохнул от компа и берусь за новые интересные статьи про создание сайта и про настройку домашних сетей и wifi.
На закуску две интересные новости — во-первых, мой блог, наконец-то, перевалил по ежедневной посещаемости за 1000 пользователей — около 1200 уников в сутки — неплохо за полгода существования. Причем, большой рывок получился именно в этом месяце благодаря одному ноу-хау, о котором я расскажу в одной из следующих статей, так что следите за обновлениями! 😉 А вторая — несколько моих статей про SEO появилось в популярном бесплатном электронном издании Поисковая Оптимизация от А до Я, в котором собраны самые интересные и полезные статьи на тему оптимизации и раскрутки сайтов. Очень рекомендую скачать и прочитать эту кладезь знаний, состоящую аж из 3 томов.

Вертикальное меню для сайта

Ну довольно лирики, беремся за учебу! Про создание сайта давненько на блоге не было публикаций, и та часть читателей, которая следит именно за этой линией моего блога, наверное уже немного подзаскучала. Но ничего — сегодня опять беремся за работу, и сегодня разбираем, как сделать вертикальное CSS меню. Его еще называют меню аккордеон, потому что оно является выпадающим — описания и подразделы открываются только при нажатии на пункт-заголовок. По традиции, мы рассмотрим два способа создания вертикального меню для сайта — без плагина и с ним — благо, возможности системы это позволяют.

Вертикальное выпадающее CSS меню
Как вы понимаете, как в том, так и в другом варианте мы будем пользоваться jQuery и CSS 3. Для начала сделаем вертикальное выпадающее меню своими руками. Следует оговориться, что подобная навигация будет работать только в тех браузерах, которые поддерживают стандарт CSS 3, но на сей счет можно особо не беспокоиться, т.к. все современные программы последних версий его различают. Итак, костяк меню будет следующим:

<section>
    <div>
        <input id="ac-1" name="accordion-1" type="checkbox" />
        <label for="ac-1">Заголовок 1</label>
            <ul><li>Пункт 1</li>
                <li>Пункт 2</li>
        </ul>
    </div>
    <div>
        <input id="ac-2" name="accordion-1" type="checkbox" checked />
        <label for="ac-2">Заголовок 2</label>
        <ul><li>Пункт 3</li>
                <li>Пункт 4</li>
        </ul>
    </div>
    <div></div>
</section>





Данный код мы вставляем в виджет «Текст» или напрямую в файл sidebar.php.

Далее зададим необходимые стили, добавив их в файл style.css:

.ac-container{
    width: 400px;
    margin: 10px auto 30px auto;
}

.ac-container label{
    font-family: 'BebasNeueRegular', 'Arial Narrow', Arial, sans-serif;
    padding: 5px 20px;
    position: relative;
    z-index: 20;
    display: block;
    height: 30px;
    cursor: pointer;
    color: #777;
    text-shadow: 1px 1px 1px rgba(255,255,255,0.8);
    line-height: 33px;
    font-size: 19px;
    background: linear-gradient(top, #ffffff 1%,#eaeaea 100%);
    box-shadow:
        0px 0px 0px 1px rgba(155,155,155,0.3),
        1px 0px 0px 0px rgba(255,255,255,0.9) inset,
        0px 2px 2px rgba(0,0,0,0.1);
}

.ac-container label:hover{
    background: #fff;
}

.ac-container input:checked + label,
.ac-container input:checked + label:hover{
    background: #c6e1ec;
    color: #3d7489;
    text-shadow: 0px 1px 1px rgba(255,255,255, 0.6);
    box-shadow:
        0px 0px 0px 1px rgba(155,155,155,0.3),
        0px 2px 2px rgba(0,0,0,0.1);
}

.ac-container label:hover:after,
.ac-container input:checked + label:hover:after{
    content: '';
    position: absolute;
    width: 24px;
    height: 24px;
    right: 13px;
    top: 7px;
    background: transparent url(../images/arrow_down.png) no-repeat center center;
}

.ac-container input:checked + label:hover:after{
    background-image: url(../images/arrow_up.png);
}

.ac-container input{
    display: none;
}

.ac-container article{
    background: rgba(255, 255, 255, 0.5);
    margin-top: -1px;
    overflow: hidden;
    height: 0px;
    position: relative;
    z-index: 10;
    transition:
        height 0.3s ease-in-out,
        box-shadow 0.6s linear;
}
.ac-container input:checked ~ article{
    transition:
        height 0.5s ease-in-out,
        box-shadow 0.1s linear;
    box-shadow: 0px 0px 0px 1px rgba(155,155,155,0.3);
}

.ac-container article ul{
    font-style: italic;
    color: #777;
    line-height: 23px;
    font-size: 14px;
    padding: 20px;
    text-shadow: 1px 1px 1px rgba(255,255,255,0.8);
}

.ac-container input:checked ~ article.ac-small{
    height: 140px;
}
.ac-container input:checked ~ article.ac-medium{
    height: 180px;
}
.ac-container input:checked ~ article.ac-large{
    height: 230px;
}

Данный код CSS полностью задает настройки для отображения и динамики панели вертикального выпадающего меню. Изображения стрелок («arrow_up.png» и «arrow_down.png») можете подобрать по своему вкусу, равно как и поменять цвета.

Меню аккордеон с плагином

К сожаленью, недостаток описанного способа в том, что все пункты придется менять вручную, в то время как при установке плагина они будут добавляться динамически. Да и это будет проще для новичков или при создании сайта на заказ для последующего управления им админа, не разбирающегося в тонкостях структуры шаблонов WP.

Плагин называется jQuery Vertical Accordion Menu Widget. Как видно из названия, это виджет, для которого вы задаете меню, созданное в соответствующем разделе, и задаете настройки отображения. Посмотрим подробнее, как это работает. После установки и активации плагина, заходим в «Внешний вид > Виджеты» и видим там наш новый виджет.

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

Пройдемся по основным настройкам.

Выберите меню — здесь вам надо указать то меню, которое вы создали в разделе «Внешний вид > Меню» и хотите вывести в виде выпадающего аккордеона. При этом пункты первого уровня будут заголовками (их можно сделать вообще без ссылок на какую-либо страницу), а второго уровня — выпадающими при нажатии или наведении мышки подпунктами.

Click/Hover — действие, при котором будет срабатывать анимация — раскрываться подпункты. Либо при клике по материнскому заголовку, либо при наведении на него.

Auto Close Open Menus — автоматическое закрытие открытых заголовков при активации других

Save Menu State — использует куки браузера для того, чтобы пользователь, зайдя на сайт в другой раз, увидел меню в том самом виде, как он его оставил, покинув сайт в прошлый раз.

Menu Class — можно указать классы, если вы хотите задействовать собственные настройки оформления CSS меню и прописали их в файле стилей шаблона.

Hover Delay — задержка анимации при наведении

Animation Speed — скорость анимации выпадающих пунктов меню

Skin — выбор одного из предустановленных шаблонов.

Настроив все, получаем такую картинку:

Ну как, понравилось играть на аккордеоне? Вот такая музыкальная получилась статейка. Подписывайтесь на обновления, и узнаете еще много нового — для вас за лето заготовлено много интересного!

Поделись этой статьей с друзьями!

Это будет интересно прочитать:

Комментариев: 2

Добавить комментарий