developing.name Решение проблем разработки сайтов. uncat php javascript jquery ajax html other C#

Подсказки с помощью jQuery (plugin)

10.12.2008, 18:41
Рубрика: jquery

Пример написания плагина подсказок для jquery. Пришла необходимость в нормальных подсказках на сайте, а те примеры которые нашлись, не подходили по разным параметрам. Возможно, что поиск подвел, но ведь всегда приятно создать что-то свое. Да и лучше написать с нуля, чем переделывать чужое под свои нужды. И после некоторых мучений, мы имеем небольшой, но функциональный плагин.

Скачивайте, используйте и переделывайте на здоровье: pro.tips.0.1.js

UPD: pro.tips.0.2

А вот и демо: Сейчас, дети
программисты ;)
, я расскажу вам, как написать плагин
plugin!
 подсказок для jQuery
jQuery – очень интересная штука.
.

И так начнем описывать. Надеюсь сам код плагина proTips у вас перед глазами, с меня только некоторые вырезки с комментариями.

В плагин воткнуты установки по умолчанию:

options = $.extend({
    tips: "div.protips",           // где же будут у нас подсказки?
    tags: "a, span, strong",       // на какие теги будут всплывать подсказки
    width: 100,                    // ширина блока подсказок
    border: "1px solid #FF0000",   // бордер блока подсказок
    color: "#000000",              // цвет текста подсказки
    background: "#EEEEEE",         // и естественно фон
    link: "#FF0000",               // цвет ссылки
    underline: "1px dotted #FF0000"// подчеркивание ссылки
}, options);

и естественно они могут задаваться при вызове protips.

По умолчанию теги с подсказками находятся в <div class="protips"></div>, это параметр tips. А вешается все это дело в a, span, strong, что показывает tags. К чему все это?

$("div.protips").children("a, span, strong")
// в div с классом protips “взять” все a, span, strong

Когда то понадобятся другие теги, а переделывать постоянно не зачем, потому вынесено все в параметры, на что получаем универсальный вызов:

$(options.tips).children(options.tags)

Изменяем все стили тэгов:

$(options.tips).children(options.tags).css({
    'display': 'inline',
    'text-decoration': 'none',
    'color': options.link,
    'height': 18,
    'border-bottom': options.underline
});

И, форматируем и скрываем сами подсказки. Подразумевая, что подсказки у нас находятся в <div> в <div class="protips"> (далее будет понятнее :):

$(options.tips).children("div").css({
    'position': 'absolute',
    'display': 'none',
    'width': options.width,
    'color': options.color,
    'background-color': options.background,
    'border': options.border
});

Биндим на наведении и на перемещение (чтобы подсказка двигалась за указателем, пока мышь находится на ссылке):

$(options.tips).children(options.tags).bind("mouseover, mousemove", function(e) {
    $(this).next("div").css({ // вот слой, где текст подсказки
        'display': 'block',  // показать подсказку
        'top': e.pageY+12,   // переместить к позиции указателя мыши
        'left': e.pageX+12   // ---=---
    });
    return false;
});

Как указатель ушел, пора скрыть подсказку:

$(options.tips).children(options.tags).bind("mouseout", function() {
    $(this).next("div").css({
        'display' : 'none'
    });
    return false;
});

Нужно было, не переходить никуда, если в <a> есть ссылка:

$(options.tips).children(options.tags).bind("click", function() {
    return false;
});

Вот и весь плагин. Ничего сложного, а даже наоборот.

А теперь исходник нашего примера:

<script type="text/javascript">
$(document).bind("ready", function() {
    $("body").protips();
});
</script>

<div class="protips">
А вот и демо: Сейчас, <span>дети</span><div>программисты ;)</div>, я расскажу вам, как написать <strong>плагин</strong><div>plugin!</div> подсказок для <a href="/">jQuery</a><div>jQuery – очень интересная штука.</div>.
</div>

И получаем отличные tips :)

Пример использования proTips под другие параметры:

<script type="text/javascript">
$(document).bind("ready", function() {
    $("body").protips({
        tips: 'div#tips',
        tags: 'h2'
    });
});
</script>

<div id="tips">
<h2>Tips plugin jQuery</h2><div>создайте свой plugin для jQuery!</div>
</div>

Tips plugin jQuery

создайте свой plugin для jQuery!

Как видите, нет ничего сложного. Все возможно!

Ссылки по теме:

  • 18.09.2009 - DIV scroll v0.2
  • 05.09.2009 - Подсказки v0.2 (proTips plugin)
  • 18.12.2008 - DIV scroll (plugin)
  • 10.12.2008 - Подсказки с помощью jQuery (plugin)
  •  

    Комментарии



    bobo (05.08.2009, 18:15:29) пишет:

    Это называется ″мне впадлу доку читать, пойду-ка я лучше изобрету велосипед″

    Ответ:

    Это называется: не хочешь - не ешь :)


    gibi (20.06.2009, 14:25:49) пишет:

    А как сделать чтобы она перехватывала title ссылки? типа a title=″вот это тултип″

    Ответ:

    v0.2 специально для Вас :)


     

    Имя*:
    e-mail*:
    URL:
    captcha*
    Текст*:
    • jquery подсказки
    • подсказки на jquery
    • jquery подсказка
    • jquery tips plugin
    • JQuery tips
    • подсказки jquery
    • jquery tip
    • jquery позиция мыши
    • jquery примеры
    • jquery next
    • jquery tip plugin
    • javascript подсказка при наведении
    • jquery plugin
    • jQuery
    • jquery plugins
    • jquery при наведении
    • подсказка jquery
    • всплывающие подсказки jquery
    • jquery mousemove
    • подсказка на jquery
    • jquery перемещение div
    • jquery подсказка при наведении
    • jquery написание плагина
    • jquery next()
    • jquery наведение
    • как написать плагин для jquery
    • jquery mouseover
    • позиция мыши jQuery
    • jquery display
    • jquery наведение мыши
    • jquery написание плагинов
    • jquery поиск по name
    • jquery всплывающие подсказки
    • jquery показать div
    • всплывающий div jquery
    • jquery div
    • jQuery border
    • AJAX подсказки
    • jquery поиск
    • jquery background
    • написание плагина jquery
    • jquery написать плагин
    • jquery name
    • примеры jquery
    • позиция мыши javascript
    • jquery ajax подсказки
    • jquery всплывающий div
    • подсказки с помощью jQuery
    • jquery div display
    • javascript позиция мыши

    jQuery plugins:
    • pro.scroll - графический скролл для div
    • pro.tips - всплывающие подсказки
    Powered by PRO