Данное решение сделано с использованием флажка checkbox и не требует скриптов.

Использовать такую панель можно как угодно, например, для создания меню, формы обратной связи, регистрации/авторизации или любой другой информации

Пример:

Выдвижная панель:

Информация в панели

HTML:

В данном коде обязательным условием является, чтобы боковая панель <div class="side-panel">...</div> следовала сразу за флажком checkbox

Т.к. панель имеет фиксированное позиционирование, ее можно разместить в любом месте страницы. Основываясь на этом, можно сделать кнопку, которая будет менять свой стиль и текст: side-button-1 (для нее, тоже важна последовательность html тегов.

Если изменять переключатель не нужно, как у кнопки side-button-2, то ее можно ставить где угодно, как угодно и сколько угодно раз. Например:

CSS:

Смотрите также:

Как сделать, оформить, установить и когда нужно использовать preloader

Мобильный Tab Bar с переключающимися вкладками

Нижняя панель вкладок с красивым анимированным переходом

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

Ваш комментарий отправлен!

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

  • Олег Витальевич:

    Ошибся я дело не в скрипте. position fixed снимаешь где то плавает этот списочек...и окошко которое открывается на вопросик. Задача для меня как ни странно усложнилась

    Ответить
    • Alexander:

      Не совсем понял про что речь, но посмотрите z-index'ы

      Ответить
      • Олег Витальевич:

        Спасибо, помогло отчасти, другие комментарии тоже пригодились)

        Ответить
  • Олег Витальевич:

    Добрых вечеров. В данной панели почему то не срабатывают всплывающие окна. Запилил конструктор в нее со значком вопроса, при клике должна подсказка выходить и вне панели она работает. + всплывающие окна в которых например выбрать количество, тоже самое. Подскажите кто знает и разбирался в чем может быть проблема. Скрипты местами переставлял, все кроме панели удалял, мимо 🙁

    Ответить
  • СЕРГЕЙ:

    Скажите пожалуйста! Можно ли в эту панель вставить форму обратной связи с вашего сайта?
    И... можно ли сделать несколько панелей с разной инфой, открывающихся отдельно?

    Ответить
  • Владимир:

    Доброго времени суток. А под валидатор как подогнать данное действо. Для lable вроде как div внутри не допустим с точки зрения хз чего) А так все работает круть как всегда. Тот момент когда в авторе не сомневаешься.

    Ответить
    • Alexander:

      Поменяйте [i]div [/i]на [i]span [/i]:)

      Ответить
      • Владимир:

        Да со span проходит благодарю. Пришлось маленько поправить оформление и норм.

        Ответить
  • СЕРГЕЙ:

    А как вместо кнопки сделать флажок типа бокового меню?

    Ответить
    • Alexander:

      [i]position: fixed[/i] и вместо текста иконку

      Ответить
  • Сергей:

    Просто шикарно! Очень вовремя мне попалась эта статья и в целом ваш сайт.
    На редкость полезный и толковый сайт. Спасибо вам.
    А как вместо крестика поставить треугольники? В закрытом состоянии углом внутрь (к центру), а в закрытом состоянии - углом наружу. Получится подсказка типа открыть-закрыть. В смысле - понятно, что это можно сделать с помощью псевдоэлементов или маленьких картинок, но как без JS отловить закрытое и открытое состояние панели?

    Ответить
    • Alexander:

      Без JS это изходить из [i]:checked[/i], как основная кнопка сделана.

      Ответить
  • Сергей:

    А если в панель не помещается содержимое, как добавит вертикальный скролл?

    Ответить
    • Alexander:

      [code]<div class="side-title">Выдвижная панель:</div>
      <p>Информация в панеле</p>[/code]
      Обернуть в див со стилями:
      [code]overflow-y: auto;
      height: 100%;[/code]

      Ответить
  • Илья:

    Как сделать так, чтобы панель закрывалась не по крестику на панели, а по щелчку в любой точке экрана вне панели?

    Ответить
    • Alexander:

      Для этого нужен лейбл фиксированный во весь экран, а чтобы он кликался, он должен перекрывать весь сайт.

      Ответить
      • Мартин:

        Не подскажете как это сделать?

        Ответить
        • Alexander:

          Ну это уже JS
          Если на нем делать боковоую панель, то смысла нет городить все эти чекбоксы
          На днях сделаю JS вариант

          Ответить
  • Миша:

    Спасибо, отличное решение.

    Ответить
  • Юлия:

    А как сделать, чтобы несколько таких кнопок было на одной странице с разной информацией в боковом меню.. для каждой кнопки своя?

    Ответить
    • Alexander:

      Дублировать: ID, классы и т.д.
      Но тут удобнее на JS будет уже

      Ответить
    • Юлия:

      [quote] я продублировала, но ничего не получилось, вылезает панель от исходных настроек

      Ответить
      • Alexander:

        Дайте ссылку на результат, так сложно понять что не так и тем более обьяснить.

        Ответить
        • Юлия:

          В другой раз, видимо, я на следующий день изменила решение задачи. Если возникнет необходимость снова сделать несколько всплывающих окон - кину ссылку. Спасибо!

          Ответить
  • Георгий:

    если справа нужна панель, то что менять чтобы всё отлично работало?

    Ответить
    • Alexander:

      [code].side-panel {
      [red][del]left: -360px;[/del][/red]
      [red][del]box-shadow: 10px 0 20px rgba(0,0,0,0.4);[/del][/red]
      [green]left: 100%;[/green]
      [green]box-shadow: -10px 0 20px rgba(0,0,0,0.4);[/green]
      }
      #side-checkbox:checked + .side-panel {
      [red][del]left: 0;[/del][/red]
      [green]left: calc(100% - 360px);[/green]
      }[/code]

      Ответить
  • Илья:

    И настроить на стили на свою кнопку?

    Ответить
    • Alexander:

      Только эта кнопка должна быть [b]label [/b]и с правильным [b]for[/b]

      Ответить
      • Илья:

        т.е. отстилизовать под свой дизайн я не смогу?

        Ответить
        • Alexander:

          Почему?
          Или редактируйте эту кнопку, что в примере, или ставьте любую свою:
          [code]<label class="my-style-button" for="side-checkbox">Моя кнопка</label> [/code]
          Только это должен лейбл быть, чтобы он открывал панель.
          А стили ставьте хоть в виде ссылки, хоть в виде кнопки, хоть в виде фото.

          Ответить
          • Роман:

            Хорошее решение, только что открыл и не пойму, при переделке панели на правую сторону, я не меняю никаких id и названий лейблов, заменил то, что выше в коментарии писали (ориентация панели), но панель справа не открывается? Каким образом лейбл менять? спасибо

            Ответить
          • Роман:

            Разобрался Александр, все Ок! подписка

            Ответить
            • ddd:

              В чем была проблема? Не могу разобраться

              Ответить
              • Роман:

                Никаких проблем нет, просто внимательнее смотрите на CSS

          • Михаил:

            Подскадите, пожалуйста, как сделать не кнопкой, а иконкой (картинкой)?

            Ответить
            • Alexander:

              [code]<label class="my-style-button" for="side-checkbox"><img src="icon.png" /></label>[/code]

              Ответить
  • Дмитрий:

    Хорошее решение, спасибо!

    Ответить