Blog. Just Blog
PCL's Nice Tooltip 1.1.4
Для оформления этого блога мне понадобился хороший скрипт, показывающий всплывающие подсказки при наведении курсора мышки на определенные элементы страницы. Например, на картинки или ссылки. Готовыми скриптами я не пользуюсь, поэтому и здесь решил написать свой. Тем более я пока не встретил ни одного скрипта всплывающих подсказок, который обладал бы нужным мне функционалом. Так на свет появился скрипт PCL's Nice Tooltip, которым я с удовольствием с вами поделюсь.Описание и возможности PCL's Nice Tooltip:
- Кроссбраузерность. Скрипт протестирован и гарантированно работает в браузерах Internet Explorer 5.x-8.x и IE-based (Avant Browser, TheWorld, Maxthon и других), Gecko-based (Firefox, Mozilla, Netscape 8.x-9.x, K-Meleon и других), Opera 7.x-10.x, WebKit-based (Safari, Google Chrome, Iron и других). Поддерживаются различные типы DOCTYPE web-страниц.
- Всплывающее окно подсказки автоматически подстраивается под размер текста, длинный текст переносится. Подсказка не выходит за пределы экрана и всегда целиком находится в видимой области web-страницы, размер окна подсказки при достижении краев экрана не искажается. Корректно обрабатывается вертикальная и горизонтальная прокрутка, а также фреймы.
- Простое подключение скрипта, не требующее никаких навыков программирования. Для продвинутых пользователей смена внешнего вида окна подсказки через собственные стили, расширение списка поддерживаемых тегов. Подключаемый скрипт имеет очень небольшой размер и не требует для работы дополнительных файлов.
- Хорошая интеграция скрипта с различными AJAX-компонентами. После загрузки через AJAX и обновления какого-нибудь фрагмента текста на странице достаточно вызвать всего одну функцию PCL_TooltipUpdate() и всплывающие подсказки сразу будут доступны в обновленной части страницы. Пример - динамический AJAX-календарик у меня на сайте.
- Скрипт абсолютно бесплатный, единственным условием его использования является сохранение в исходном коде скрипта информации об авторе и ссылки на этот сайт. Категорически запрещается распространять скрипт PCL's Nice Tooltip за деньги или иное вознаграждение, как отдельно, так и в качестве составной части других дистрибутивов! Всех барыг на кол.
Установка скрипта. Скачайте прилагаемый архив, распакуйте из него файл pcl_tooltip.js и поместите в каталог с вашими скриптами. В заголовок head или самое начало странички пропишите код для подключения скрипта:
Code (HTML) : Убрать нумерацию
- <script src="pcl_tooltip.js" type="text/javascript"></script>
Code (HTML) : Убрать нумерацию
- <script type="text/javascript"> PCL_TooltipInit(); </script>
Code (HTML) : Убрать нумерацию
- <body onload="PCL_TooltipInit();">
Code (HTML) : Убрать нумерацию
- .tooltip {
- border: 1px #696969 solid;
- padding: 5px;
- background: #FFFFE0;
- color: #000000;
- font: normal 12px Arial, Verdana;
- }
Code (JavaScript) : Убрать нумерацию
- // Для каких элементов устанавливать подсказки
- var tooltiptags = ['a', 'img', 'span', 'td'];

Превед! Я - картинка с Alt-текстом!
Или вот такая ссылка. Для появления всплывающей подсказки просто наведите курсор мышки на картинку или ссылку. Скрипт работает на стороне клиента и никаким образом не влияет на исходный код и обработку ваших страниц поисковыми системами. При отключенных скриптах посетитель вашего сайта увидит обычные всплывающие подсказки, показываемые встроенными средствами браузера. В приложении сам скрипт и пример его использования с подробными комментариями.
Просмотров: 4175 | Комментариев: 32
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(23.03.2011 в 16:45):
Ну так надо сайты нормально делать, и будет счастье. А то под любой скрипт можно найти условия, при которых он даст сбой. Под FF тоже воспроизвести не могу, все работает нормально.
coolakov
(23.03.2011 в 16:44):
Хороший скрипт, спасибо, но нашел пару багов.
1. При расположении картинки/ссылки близко к правой границе браузера в ФФ подсказка уползает за границу экрана пикселей на 10, и при этом появляется горизонтальный скрол. В остальных браузерах вроде ок.
2. Не то чтоб баг, но особенность: если body имеет ширину не 100% и при этом position: relative; margin: 0 auto, то координаты появления подсказки слабо предсказуемы.
1. При расположении картинки/ссылки близко к правой границе браузера в ФФ подсказка уползает за границу экрана пикселей на 10, и при этом появляется горизонтальный скрол. В остальных браузерах вроде ок.
2. Не то чтоб баг, но особенность: если body имеет ширину не 100% и при этом position: relative; margin: 0 auto, то координаты появления подсказки слабо предсказуемы.
Lazy_Kent
(16.03.2011 в 00:17):
Нет подсказки на картинке "Превед!". На картинке "Это я" и в остальных местах есть.
Браузер Konqueror 3.5.10 (KDE 3.5.10 openSUSE 11.3).
Браузер Konqueror 3.5.10 (KDE 3.5.10 openSUSE 11.3).
ManHunter
(15.03.2011 в 11:21):
В новой версии улучшена работа с вложенными тегами, оптимизирована общая работа скрипта, сделаны мелкие доработки.
nebot
(02.01.2011 в 01:38):
ManHunter , оч приятно читать //комменты (пояснения работы) скрипта на русском , а не английском языке.
Это такая редкость :) Кстати на css можно подобное делать, с той лишь разницей, что
всплывающая подсказка не будет бегать за курсором :) Да и !doctype уже становится 'историей' c приходом html5.
Это такая редкость :) Кстати на css можно подобное делать, с той лишь разницей, что
всплывающая подсказка не будет бегать за курсором :) Да и !doctype уже становится 'историей' c приходом html5.
Isaev
(07.11.2010 в 05:24):
приятная вещь!
Станислав Шмелев
(06.11.2010 в 00:56):
Спасибо Дмитрий за скрипт, работа замечательная. Но только уже вторая попытка его установить(первая была в августе)полностью провалилась. Я пытался установить его на блог с движком WP, пробовал поместить в папки со скриптами в каталогах wp-includes и в wp-admin(поочередно). Код для для запуска скрипта прописывал в шапке шаблона между тегами head. Результата никакого, советом по расположению кода прописки между тегами body не воспользовался, т.к. не знаю как прописать полный путь к скрипту. Вот такая чехарда получилась. Может новая версия пойдет как надо, либо не знаю...
ManHunter
(28.10.2010 в 11:59):
Для этого придется адаптировать скрипт к какому-нибудь фреймворку, или для частных случаев просто изменить проверку типа
var your_class='ttip';
var pattern = new RegExp("(^|\\s)"+your_class+"(\\s|$)");
if (pattern.test(x.className) &&
((typeof(x.alt)=='string' && x.alt!='') ||
(typeof(x.title)=='string' && x.title!=''))
) { ...
var your_class='ttip';
var pattern = new RegExp("(^|\\s)"+your_class+"(\\s|$)");
if (pattern.test(x.className) &&
((typeof(x.alt)=='string' && x.alt!='') ||
(typeof(x.title)=='string' && x.title!=''))
) { ...
LaeX
(28.10.2010 в 11:52):
А можно сделать так, чтобы скриптом обрабатывались только все теги <img> с классом .foto, или ссылки с классом .download, или же просто все теги с классом .ttip?
Outviewer
(28.10.2010 в 10:13):
Ваш код можно ставить в рамочку и вешать на стену, чтобы всегда перед глазами был пример, как надо писать.
Спасибо за прекрасный скрипт.
Спасибо за прекрасный скрипт.
ManHunter
(27.10.2010 в 00:01):
В новой версии исправлена ошибка, приводящая к дерганью экрана при появлении подсказки. Добавлена точная подстройка блока подсказки под размер многострочной подсказки.
ManHunter
(11.08.2010 в 22:00):
Скоро выложу новую версию, там скачков не будет. Пока можешь скопировать с этого сайта.
Роман
(11.08.2010 в 21:46):
У меня проблема с этим скриптом. После обновления страницы, она(страница) становиться на 10 px больше. Когда навожу на какой-либо объект с параметром title страница РЕЗКО принимает прежний вид (-10 px)
Как этого можно избежать?
Как этого можно избежать?
Роман
(26.07.2010 в 13:33):
Спасибо за скрипт, давно искал.
Олег
(01.02.2010 в 11:48):
Спасибо.
ManHunter
(29.01.2010 в 19:25):
Ну раз спросил, то можно :)
Олег
(29.01.2010 в 19:24):
Наша фирма делает специальные сайты и ставит их на сервера клиентов.
Сайти эти не для публичного пользования, ими пользуются только клиенты. Сайты эти продаются.
Можно ли использовать эту библиотеку в этом случае?
Сайти эти не для публичного пользования, ими пользуются только клиенты. Сайты эти продаются.
Можно ли использовать эту библиотеку в этом случае?
Гонщик
(31.08.2009 в 15:01):
Цитата: "...Готовыми скриптами я не пользуюсь..."
Зато очень много народа пользуется Вашими готовыми скриптами. Огромное спасибo!
Зато очень много народа пользуется Вашими готовыми скриптами. Огромное спасибo!
ManHunter
(25.05.2009 в 09:50):
Серьезно? Протестировано в IE с 5 по 8, везде работает. "Не работает" - это когда не работает файл example.html из архива. А чьи-то кривые руки я исправляю только за деньги.
lewonchik
(25.05.2009 в 05:09):
Обнаружил проблему - в ИЕ при подключенном скрипте страница вообще не отображается, виден только общий фон страницы и больше ничего!!!
ManHunter
(06.05.2009 в 09:26):
Обработку Alt из скрипта убрать недолго, а title штатными средствами браузера всплывает очень долго. Да, 1 секунда - это уже дофига, мне надо мгновенно, потому и был написан этот скрипт. А использовать его или нет, это уже пусть каждый решает сам.
3des
(06.05.2009 в 09:15):
Поставил, долго не мог понять чем хуже атрибут титле выводится броузером, вывод алт откровенно мешает, выводя при наведении на каждой картинке. Попробовал добавить свой атрибут в скрипт. Експлорер обрабатывает его а хром игнорирует. Нахожусь в глубоких размышлениях, стоит ли применить этот скрипт в задаче по выводу подсказки при наведении мышки на значек ? или доверить это броузеру. Понятно что можно менять цвета и размеры но в общем то это не к чему, дизайнеры броузеров уже за нас это продумали.
Надюша
(08.03.2009 в 00:21):
Лучше видать не нашлось, а понимаю - весна пришла, хотя можно было, и обойтись одной улыбкой мартовского кота :)
ManHunter
(06.03.2009 в 16:23):
Картинку нет, позаимствовал из Интернета.
Надюша
(06.03.2009 в 01:30):
а картинку тоже руками? :)
ManHunter
(03.03.2009 в 23:31):
Руками делал, в блокнотике RPad32. Про здешний модуль AJAX наверное как-нибудь тоже нарисую статейку.
dimon
(03.03.2009 в 23:26):
расскажите пожалуйста,как вы сделали ajax календарик.
dimon
(03.03.2009 в 23:24):
респект!
ManHunter
(03.03.2009 в 21:44):
В конкретном этом случае никаких предупреждалок не надо. С отключенными скриптами у параноиков будут отображаться стандартные браузерные Alt и Title.
Nutscracker
(03.03.2009 в 21:38):
> P.S. "Работает? Не трогай!" (С) суровые программисты
Вот и я, видимо, до пока не припрет (или не захочется странного) играться с подсказками не буду. И до нормального учета выходов за края страницы мне еще доходить не доводилось...
Мне тут подумалось, что может получиться хороший вариант с подсказками на CSS:hover + перемещение и учет границ при движении курсора средствами js.
Да, еще одно наблюдение: при прокрутке страницы колесиком мыши подсказок не наблюдается, хотя Firebug ( https://addons.mozilla.org/ru/...x/addon/1843 ) утверждает, что mouseover и mouseout при этом вполне себе происходят (соответственно, не исключается реализуемость).
Да, кстати, в случае существенных отличий при отображении с и без js я предпочитаю вешать предупреждалку для параноиков.
Вот и я, видимо, до пока не припрет (или не захочется странного) играться с подсказками не буду. И до нормального учета выходов за края страницы мне еще доходить не доводилось...
Мне тут подумалось, что может получиться хороший вариант с подсказками на CSS:hover + перемещение и учет границ при движении курсора средствами js.
Да, еще одно наблюдение: при прокрутке страницы колесиком мыши подсказок не наблюдается, хотя Firebug ( https://addons.mozilla.org/ru/...x/addon/1843 ) утверждает, что mouseover и mouseout при этом вполне себе происходят (соответственно, не исключается реализуемость).
Да, кстати, в случае существенных отличий при отображении с и без js я предпочитаю вешать предупреждалку для параноиков.
ManHunter
(03.03.2009 в 07:51):
Nutscracker, по поводу тегов - это так и задумано. В подсказке на самом деле можно использовать html, просто это не документировано.
По mouseover надо будет посмотреть, может получится сделать какое-нибудь красивое решение.
P.S. "Работает? Не трогай!" (С) суровые программисты
По mouseover надо будет посмотреть, может получится сделать какое-нибудь красивое решение.
P.S. "Работает? Не трогай!" (С) суровые программисты
Nutscracker
(03.03.2009 в 01:50):
Будет глюк при, например,
title="-<br>-"
- получим <br> и перенос строки.
По-моему, нужно или вместо
elt.innerHTML = "...";
делать
elt.replaceChild(document.createTextNode("..."), elt.firstChild);
, или делать возможность выбора, скажем, при
/(^|\s)someClass(\s|$)/.test(elt.className)
Если это существенно, конечно. :D
P.S. А к чему PCL_TooltipUpdate(), если можно просто перехватывать mouseover и при наличии соответствующих атрибутов (точнее, уже свойств, конечно :)) делать нужные преобразования "на лету"?
P.P.S. А вообще, мне вот такая штука нравится: http://psacake.com/web/jl.asp
Наверное, из-за вредной привычки ходить по интернетам с отключенным js. :D
title="-<br>-"
- получим <br> и перенос строки.
По-моему, нужно или вместо
elt.innerHTML = "...";
делать
elt.replaceChild(document.createTextNode("..."), elt.firstChild);
, или делать возможность выбора, скажем, при
/(^|\s)someClass(\s|$)/.test(elt.className)
Если это существенно, конечно. :D
P.S. А к чему PCL_TooltipUpdate(), если можно просто перехватывать mouseover и при наличии соответствующих атрибутов (точнее, уже свойств, конечно :)) делать нужные преобразования "на лету"?
P.P.S. А вообще, мне вот такая штука нравится: http://psacake.com/web/jl.asp
Наверное, из-за вредной привычки ходить по интернетам с отключенным js. :D
Добавить комментарий
Заполните форму для добавления комментария
PCL's Nice Tooltip 1.1.4