
Июль 3, 2014 Запись была обновлена
Простые подсказки на CSS3 и jQuery

Подсказки на странице являются очень полезным ее элементом. С помощью подсказок можно сократить страницу, а «лишний» текст вынести в подсказку, которая изначально скрыта, а появляется только при наведении. Я писал уже раньше как создать подсказки на CSS3, а в этом уроке мы посмотрим как сделать так, чтобы всплывающие подсказки работали и в Internet Explorer старых версиях.
Реальный пример можно увидеть здесь:
Посмотреть примерСкачать
Вот здесь находится прошлая статья по созданию всплывающих подсказок:
HTML часть
Сначала подключим библиотеку jQuery(она нам понадобится позже):
1 | <script src="js/jquery-1.js"></script> |
Я сделал топ-10 фильмов в упорядоченном списке, чтобы продемонстрировать всплывающие подсказки:
1 2 3 4 5 6 | <ol> <li> <b class="tooltip" data-tooltip="Производство: Россия, 2013">Курьер из Рая<span class="tooltip-content">Производство: Россия, 2013</span></b> </li> .... </ol> |
Как видите мы используем специальный атрибут HTML5 data-tooltip, который позволяет мгновенно создать всплывающую подсказку. А также далее между тегами <span> находится подсказка, которая будет появляться в более старых браузерах.
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 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | .tooltip { position: relative; display: inline-block; cursor: help; white-space: nowrap; border-bottom: 1px dotted #777; } .tooltip-content { opacity: 0; visibility: hidden; font: 12px Arial, Helvetica; text-align: center; border-color: #aaa #555 #555 #aaa; border-style: solid; border-width: 1px; width: 150px; padding: 15px; position: absolute; bottom: 40px; left: 50%; margin-left: -76px; background-color: #fff; background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0,0,0,.1)), to(rgba(255,255,255,0))); background-image: -webkit-linear-gradient(rgba(0,0,0,.1), rgba(255,255,255,0)); background-image: -moz-linear-gradient(rgba(0,0,0,.1), rgba(255,255,255,0)); background-image: -ms-linear-gradient(rgba(0,0,0,.1), rgba(255,255,255,0)); background-image: -o-linear-gradient(rgba(0,0,0,.1), rgba(255,255,255,0)); background-image: linear-gradient(rgba(0,0,0,.1), rgba(255,255,255,0)); -moz-box-shadow: 1px 1px 0 #555, 2px 2px 0 #555, 3px 3px 1px rgba(0, 0, 0, .3), 0 1px 0 rgba(255,255,255, .5) inset; -webkit-box-shadow: 1px 1px 0 #555, 2px 2px 0 #555, 3px 3px 1px rgba(0, 0, 0, .3), 0 1px 0 rgba(255,255,255, .5) inset; box-shadow: 1px 1px 0 #555, 2px 2px 0 #555, 3px 3px 1px rgba(0, 0, 0, .3), 0 1px 0 rgba(255,255,255, .5) inset; -webkit-transition: bottom .2s ease, opacity .2s ease; -moz-transition: bottom .2s ease, opacity .2s ease; -ms-transition: bottom .2s ease, opacity .2s ease; -o-transition: bottom .2s ease, opacity .2s ease; transition: bottom .2s ease, opacity .2s ease; } .tooltip-content:after, .tooltip-content:before { border-right: 16px solid transparent; border-top: 15px solid #fff; bottom: -15px; content: ""; position: absolute; left: 50%; margin-left: -10px; } .tooltip-content:before { border-right-width: 25px; border-top-color: #555; border-top-width: 15px; bottom: -15px; } .tooltip:hover .tooltip-content{ opacity: 1; visibility: visible; bottom: 30px; } |
jQuery часть
И последнее — это немного кода jQuery:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | $(document).ready(function(){ $('[data-tooltip]').addClass('tooltip'); $('.tooltip').each(function() { $(this).append('<span class="tooltip-content">' + $(this).attr('data-tooltip') + '</span>'); }); if ($.browser.msie && $.browser.version.substr(0,1)<7) { $('.tooltip').mouseover(function(){ $(this).children('.tooltip-content').css('visibility','visible'); }).mouseout(function(){ $(this).children('.tooltip-content').css('visibility','hidden'); }) } }); |
Вывод
На этом всё. Преимуществом данного вида подсказок является то, что они будут работать в версиях IE 6,7.
Успехов!
Источник: www.red-team-design.com
Спасибо за ваше обращение!
Мы свяжемся с вами в течение 2-х часов (график работы: пн-пт, с 10 до 19)
Отличное изложение материала! Спасибо, Юрий! Вы получили еще одного подписчика 🙂
Классный пример!