Июль 16, 2014 Запись была обновлена
Красивое уведомление на CSS3
Часто заходишь на сайт и тебе тычут этими всплывающими окнами, всяческие всплывающие окна, ты всё пытаешься их закрыть. А бывают и такие окна, в которых отсутствует кнопка закрыть. Чего не сделают ради рекламы и ради денег. Но с таких сайтов пытаешься быстрее сбежать. А легче всего это включить плагин AdBlock(для пользователей Firefox) и не думать о рекламе, а если и появится — просто кликнуть блокировать и всё. А в этом уроке мы создадим красивое уведомление, которое не будет отпугивать посетителей, а имеет приятный вид.
Реальный пример уведомления находится здесь:
Посмотреть примерСкачать
HTML часть
Начнем с создания структуры уведомления в HTML:
1 2 3 4 5 6 7 8 9 | <div class="notification-bar"> <input id="hide" type="radio" name="bar" value="hide"> <input id="show" type="radio" name="bar" value="show" checked="checked"> <label for="hide">Показать</label> <label for="show">Скрыть</label> <div class="notification-text">Привет! Вы можете спрятать данное уведомление кликнув на кнопку справа.</div> </div> |
Оно состоит из кнопок навигации, в качестве которых будут использованы радио кнопки. И по умолчанию выбрана кнопка показа уведомления.
CSS часть
Давайте придадим вид нашему уведомлению с помощью таблицы стилей:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | .notification-bar { position: absolute; width: 99%; top: 0; } .notification-text { background-color: #2980B9; padding: 15px; color: #fff; font-size: 14px; text-align: center; position: absolute; width: 100%; -webkit-animation: initiate 350ms ease; -moz-animation: initiate 350ms ease; -o-animation: initiate 350ms ease; animation: initiate 350ms ease; } .notification-bar input { display: none; } .notification-bar label { cursor: pointer; color: #fff; position: absolute; z-index: 5; display: inline-block; text-indent: 100%; white-space: nowrap; overflow: hidden; } .notification-bar label[for=hide] { right: 15px; top: 11px; width: 24px; height: 24px; background: url('../img/close.png') no-repeat center center; -webkit-animation: initiate 350ms ease; -moz-animation: initiate 350ms ease; -o-animation: initiate 350ms ease; animation: initiate 350ms ease; } .notification-bar label[for=show] { width: 45px; height: 50px; border-radius: 0px 0px 3px 3px; right: 10px; background: url('../img/show.png') no-repeat center center #2980B9; } |
Это лишь основные стили. Вы можете добавить свои стили, чтобы уведомление не сильно выделялось на фоне дизайна сайта.
А сейчас реализуем переключение с помощью псевдо-селектора :checked, так как мы используем радио кнопки:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | .notification-bar input[value=show]:checked ~ label[for=show], .notification-bar input[value=hide]:checked ~ label[for=hide], .notification-bar input[value=hide]:checked ~ .notification-text { -webkit-transition: ease 350ms; -moz-transition: ease 350ms; -o-transition: ease 350ms; transition: ease 350ms; -webkit-transform: translateY(-100%); -moz-transform: translateY(-100%); -o-transform: translateY(-100%); transform: translateY(-100%); } .notification-bar input[value=hide]:checked ~ label[for=show], .notification-bar input[value=show]:checked ~ label[for=hide], .notification-bar input[value=show]:checked ~ .notification-text { -webkit-transition: ease 350ms; -moz-transition: ease 350ms; -o-transition: ease 350ms; transition: ease 350ms; -webkit-transform: translateY(0%); -moz-transform: translateY(0%); -o-transform: translateY(0%); } |
Когда первый раз смотришь демо, уведомление сразу показывается, поэтому добавим небольшую анимацию:
1 2 3 4 5 6 7 8 9 10 11 | @keyframes initiate { 0% { transform:translateY(-100%); } 50% { transform:translateY(-50%); } 100% { transform:translateY(0%); } } |
Вывод
Действительно красивое уведомление, которое, если не применять яркие цвета, не будет отпугивать посетителя, а имеет приятный вид и красиво прячется и выезжает при показе.
Успехов!
Источник: http://www.hongkiat.com/blog/show-n-hide-notification-bar/
Спасибо за ваше обращение!
Мы свяжемся с вами в течение 2-х часов (график работы: пн-пт, с 10 до 19)
Полезная статья. Спасибо.буду пробовать
Елена, если будут вопросы — пишите!
Очень хорошие примеры, css + HTML + все нужные коды на месте.
Единственный минус таких штук — они не запоминают, что я закрыл окошко. И при каждой загрузки страницы сайта будет всплывать.
Дмитрий, ведь это можно дописать на JS.
Поставил на движок DLE 10.3, не работает. Этот скрипт что не подходит для этого движка?
Этот скрипт работает для любой CMS.
А что я тогда делаю не так? Вставил код в шаблон, где должно показывать уведомление. И код стилей вставил, где положено. Не хочет работать.
хорошее решение. Спасибо. Всегда интересный материал у Вас
по поводу всплытия нужно куки делать либо сессию