Лого SiteHere.ru

Простые подсказки на CSS3 и jQuery

Простые подсказки на 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 комментария к записи
  • Ярослав

    Отличное изложение материала! Спасибо, Юрий! Вы получили еще одного подписчика 🙂

     
  • Константин

    Классный пример!

     

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *