Как сделать выдвижное меню. Выезжающее меню с помощью CSS и jQuery. Делаем меню вытягиваемым

27.10.2019 Программы

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Алгоритмы ранжирования – методы оценки качества сайтов

В ТОП-10 должны попадать только те сайты, которые максимально полно отвечают на запрос пользователя. Качественную выдачу обеспечивают – специальные математические формулы, по которым определяется «полезность» того или иного сайта. Поисковики не разглашают информацию о своих алгоритмах, они предоставляют вебмастерам лишь общие рекомендации по улучшению и оптимизации сайтов. Тем не менее, оптимизаторы научились выявлять определенные закономерности, на основании которых разрабатывается стратегия п

родвижения.

Больше видео на нашем канале - изучайте интернет-маркетинг с SEMANTICA

Какие критерии учитывает алгоритм ранжирования

Поисковики оценивают сайты по многим параметрам. Среди наиболее значимых критериев следует отметить:

  • уникальность и оптимизация текстов (наличие ключевых фраз, тошнота, водность);
  • возраст домена;
  • количество и качество входящих ссылок;
  • тип используемой CMS;
  • скорость загрузки страниц сайта;
  • наличие ошибок в коде.

Понимая, как работает алгоритм поисковых систем, вебмастер может оказывать влияние на выдачу своего сайта. Для этого необходимо «подогнать» страницы web-проекта под требования ПС. В частности, потребуется внедрить ключевые фразы в метатеги title и description, а также непосредственно в текст страницы. Если выполняется продвижение по геозависимому запросу, то, кроме ключей, следует добавить название нужного города или региона.

Это интересно! Периодически происходит апгрейд поисковой системы, что приводит к кардинальному изменению действующих алгоритмов. Такие меры направлены на борьбу с поисковым спамом. Нередко смена алгоритма Яндекса приводит к ухудшению позиций сайтов, продвигавшихся «черными» и «серыми» методами.

Поисковые санкции

Если вебмастер явно пытается манипулировать алгоритмами Яндекса, то поисковая система может применять к нему разнообразные санкции. Могут возникнуть следующие проблемы:

  • Понижение позиций в выдаче
  • Плохое индексирование новых страниц (или выпадение из индекса старых документов)
  • Полный или частичный БАН

Алгоритмы Яндекса предполагают санкции за избыточную оптимизацию текстов, например, за размещение на страницах списков ключевых фраз. Фильтр может быть наложен за «невидимый» текст, сливающийся с фоном. Также под санкции попадают сайты-дорвеи и интернет площадки, копирующие чужой контент.

Новый алгоритм Яндекса – Минусинск

Этот алгоритм предполагает пессимизацию web-проекта за использование SEO-ссылок. Речь идет о сайтах, закупающих тысячи ссылок с помощью автоматизированных бирж типа Sape. С точки зрения Яндекса, ссылка считается «сеошной», если она ведет с некачественного сайта-донора и имеет коммерческий анкор.

Основанием для применения фильтра « » может стать резкий прирост ссылочной массы. Поэтому чтобы обезопасить свой web-проект от возможности применения подобной санкции, следует закупать ссылки постепенно и разбавлять анкорные линки безанкорными гиперссылками.

Существует масса готовых решений для создания таких панелей с помощью jQuery, отдельные плагины и модули для различных систем управления сайтом.
Это всё очень даже хорошо, но можно ли, для реализации боковых слайд-панелей обойтись исключительно средствами CSS? Конечно можно! Но осторожно))), с оглядкой на то, что не все браузеры одинаково хорошо поддерживают современные свойства CSS3.

Не так давно, «выдал на-гора» решение и пример работы . Один из первых комментариев был таким: «давайте её в бок переместим...». Почему-бы и нет? Давайте)).

Сегодня расскажу и покажу на примере, как с помощью «магии CSS» можно забабахать, вполне себе функциональное, меню, по клику.
Для начала, по заведённой традиции, смотрим живой пример работы панели, далее, вместе с теми кому оно надо, рассмотрим весь расклад, что, как и зачем. Предвидя вопросы, приготовил варианты расположения меню, как слева, так и справа:

HTML-Разметка

Начнём разбор с переключателя панели, в качестве которого используем стандартный флажок ():

Располагаем чекбокс в верхней части документа, лучше сразу после тега . Прописываем атрибут hidden , напрямую указывая состояние «скрытый» у данного элемента, а так же присвоим уникальный идентификатор, id="nav-toggle" например, для связки с атрибутом for тега

В качестве обёртки содержимого боковой панели использовал тег

Продукт 2
₽ 2500
Продукт 3
₽ 2070
@import url("https://fonts.googleapis.com/css?family=Open+Sans:300,400,600"); .col { width: 300px; background: white; padding: 20px; border: 1px solid #eeeeee; font-family: "Open Sans", sans-serif; } .col * {margin: 0;} .widget-title { margin: 0 0 30px; line-height: 1; text-transform: uppercase; letter-spacing: 1px; font-size: 20px; color: #242424; overflow: hidden; } .widget-title:after { content: ""; position: relative; display: inline-block; width: 100%; vertical-align: middle; right: -15px; margin-right: -100%; border-top: 2px solid #cca86d; } .price-line {margin-bottom: 20px;} .price-line:last-child {margin-bottom: 0;} .price-line:after { content: ""; display: table; clear: both; } .product-image { width: 80px; float: left; } .product-image a { display: block; outline: none; } .product-image img { display: block; width: 100%; } .product-content { float: left; margin-left: 20px; } .product-title { font-size: 18px; margin-bottom: 10px; line-height: 1; } .product-title a { text-decoration: none; color: #242424; } .price-box { color: #666; font-size: 18px; line-height: 1; } .star-rating { margin-bottom: 10px; font-size: 13px; position: relative; font-family: "FontAwesome"; } .star-rating:before { content: "\f005 \f005 \f005 \f005 \f005"; position: absolute; top: 0; left: 0; color: #FF9919; }

В продолжение примеров различных UI-элементов сайтов, которые можно сделать без Javascript, сегодня распишу как можно сделать выезжающее меню на чистом CSS.

И снова ДЕМО , для начала.

Начнем пожалуй со HTML -структуры:

input нам необходим для определения видимости меню: то есть если он выбран, то меню видно и наоборот.

label – это наша кнопка-бургер, которая привязана к инпуту.

ul – сам блок меню.

Теперь CSS (писал только для WebKit -браузеров: Opera 16+, Safari, Chrome).

Наше меню:

Hidden-menu { display: block; position: fixed; list-style:none; padding: 10px; margin: 0; box-sizing: border-box; width: 200px; background-color: #eee; height: 100%; top: 0; left: -200px; transition: left .2s; z-index: 2; -webkit-transform: translateZ(0); -webkit-backface-visibility: hidden; }

Здесь много раздолья для креативных людей, но главные параметры – это width и left . Он должны иметь одинаковое значение, но left при этом является отрицательным. Тем самым мы прячем нашу меню слева от экрана. Также добавил анимацию transition: left .2s для красоты процесса выезда из-за пределов экрана.

Наш чекбокс:

Hidden-menu-ticker { display: none; }

Его просто делаем невидимым.

Кнопка-бургер:

Btn-menu { color: #fff; background-color: #666; padding: 5px; position: fixed; top: 5px; left: 5px; cursor: pointer; transition: left .23s; z-index: 3; width: 25px; -webkit-transform: translateZ(0); -webkit-backface-visibility: hidden; } .btn-menu span { display: block; height: 5px; background-color: #fff; margin: 5px 0 0; transition: all .1s linear .23s; position: relative; } .btn-menu span.first { margin-top: 0; }

Оформлять также можно как угодно. Я сделал просто серую кнопку с белыми полосками в левом верхнем углу. Сюда тоже добавил анимации для самой кнопки и для полосок (просто для красоты).

Теперь, так называемая «магия»:

Hidden-menu-ticker:checked ~ .btn-menu { left: 160px; } .hidden-menu-ticker:checked ~ .hidden-menu { left: 0; } .hidden-menu-ticker:checked ~ .btn-menu span.first { -webkit-transform: rotate(45deg); top: 10px; } .hidden-menu-ticker:checked ~ .btn-menu span.second { opacity: 0; } .hidden-menu-ticker:checked ~ .btn-menu span.third { -webkit-transform: rotate(-45deg); top: -10px; }

CSS3-селекторы позволяют нам определять состояние чекбокса и применять, в зависимости от этого те или иные свойства для соседних элементов:checked ~ . В данном примере мы при «чекнутом» инпуте сдвигаем кнопку меню.hidden-menu-ticker:checked ~ .btn-menu влево на 160 пикселей, меню до левого края.hidden-menu-ticker:checked ~ .hidden-menu . Остальные стили написаны для полосок кнопки меню, чтобы они при нажатии превращались в крестик и наоборот.