Делаем всплывающую / свёртывающуюся панель на JavaScript
Делаем всплывающую информационную панель на JavaScript сверху сайта. Она может служить для уведомления посетителей о новой и важной информации, рекламе ваших услуг и товаров, ссылок и всего чего хотите. Прячется и раскрывается по нажатию на ссылку (кнопку), резервируя и убирая за собой отступ сверху.
Пример панели можно посмотреть здесь. При раскрытой панели весь сайт смещается вниз, чтобы хедер не закрывался содержимым информационного блока с проектами. Можно всплывающий блок сделать и поверх, установив у фона необходимую прозрачность, но нам требовалась именно такая реализация.
Сразу приводим кусок кода из файла шаблона
... <body> <script type="text/javascript"> $(document).ready(function(){ if ($.cookie("panel_status") === null) $.cookie("panel_status", "1"); if ($.cookie("panel_status") == 1) {$("#panel").show(); document.getElementById("wrapper").style.paddingTop="20px";} if ($.cookie("panel_status") == 0) $("#panel_open").show(); $("#panel_close_btn").click(function () { $("#panel").slideUp(100); $("#panel_open").show(); document.getElementById("wrapper").style.paddingTop="0px"; $.cookie("panel_status", "0"); }); $("#panel_open_btn").click(function () { $("#panel_open").hide(); $("#panel").slideDown(100); document.getElementById("wrapper").style.paddingTop="20px"; $.cookie("panel_status", "1"); }); }); </script> <div id="panel"> <div style="float:right;"><a id="panel_close_btn">спрятать проекты</a></div> <div style="width:1000px;margin:auto;"> <span>Наши проекты: </span> <a href="http://top30thebest.ru/" target="_blank" title="ТОП 30">Top 30</a> | <a href="http://mayabattle.com/" target="_blank" title="MAYA">MAYA</a> | <a href="http://fatherfest.ru/" target="_blank" title="FatherFest">Father Fest</a> | Hip-Hop Fight | Битва Улиц </div> </div> <script type="text/javascript">$("#panel").hide();</script> <div id="panel_open"> <div style="float:right;" id="panel_open_btn"><a>показать проекты</a></div> </div> <div id="wrapper"> ...
Жирным выделены идентификаторы, по которым происходит обработка javascript'ом в начале кода.
Свойство paddingTop задаёт смещение - style="padding-top:20px;" у обёртывающего блока div с id="wrapper".
almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.
Вы можете почитать все статьи от almix'а.
- 0 Yii: Bootstrap tabs, делаем активной вкладку на которую выполняется переход по ссылке (20.03.2014)
- 0 CodeIgniter: Всплывающая форма обратной связи на Ajax в Bootstrap Modal и проверкой Captcha (18.02.2014)
- 0 Opencart: Модуль Filter Product OpenCart_v1.5.x: Как скрывать недоступные опции в фильтре (23.10.2013)
- 0 WordPress: Добавить ссылку "Сохранить фото" для галереи на NextGen с эффектом Lightbox (12.04.2013)
- Выдвигающаяся из значка форма поиска на сайте (27.11.2017)
- Как убрать placeholder при клике по input (04.11.2017)
- Свой дизайн кнопок социальных сетей для сайта. Кнопки "Поделиться" (19.06.2017)
- Загрузка файлов (картинок) по ajax через форму для Opencart (04.09.2016)
- Замена текста при наведении на него мышью. События onmouseover и onmouseout (25.03.2016)
- Прилипание блока к верху сайта при его прокручивании (17.02.2016)
- Разделитель тысяч в эффекте наматываемого счётчика jquery countTo (05.04.2015)
- Сделать слайдер на Owl Carousel c текстом справа (03.02.2015)
- Скролл-эффекты CSS3 и JQuery при прокрутке страницы (13.01.2015)
- Модальное окно Bootstrap 3 с формой, отправляющей email по Ajax (JQuery/PHP/HTML5/JqBootstrapValidation) (20.08.2015)
- Несколько функций в body onload (08.03.2013)
- Как в iframe показывать только определённую область страницы (04.03.2013)
- jQuery Tooltips от Jörn Zaefferer. Всплывающие подсказки с помощью jQuery (08.12.2012)
- Team Sense: Многопользовательский календарь, заменяем радиокнопки на чекбоксы в выборе преподавателей. Массивы в Javascript. (06.12.2012)
- Team Sense: В календарь-расписание уроков добавлено разделение по преподавателям, которым присвоены свои цвета. (04.12.2012)
- CodeIgniter не передаёт $this->uri->segment(3) в функцию контроллера (передача переменной PHP->JavaScript->PHP) (28.11.2012)
- Случаи возникновения ошибки в IE: "Предполагается наличие идентификатора, строки или числа" (Expected identifier, string...) (23.11.2012)
- Воюем с форматом даты в JavaScript. Приведение формата даты в поле input в календаре системы TeamSense к более красивому виду. (18.11.2012)
- Хороший тон: Если у пользователя отключен Javascript в браузере или устаревшая версия браузера (09.08.2012)
- Русификация FullCalendar (13.01.2012)
- Yii: Красивенький и чистенький JavaScript плавно прокручивает страницу до якоря и делает лёгкий откат (22.04.2012)