Виджет «всплавающие подсказки» на jQuery
Технические условия
1) Код не должен нарушать авторских прав третьих лиц.
2) Код должен быть прост, логичен и минимален по объёму (это касается самого сценария, CSS и HTML).
3) Подсказка должна привязываться к любому элементу HTML (а не только к полям или гиперссылкам) по шаблону именования (например, tooltip-target-x / tooltip-content-X), поскольку на странице подсказок может быть свыше десятка.
4) При наличии у элемента свойства title его значение используется в качестве текста заголовка подсказки, при отсутствии — тело подсказки выводится без заголовка.
5) Телом подсказки может быть любой корректный (X)HTML-код (включая гиперссылки), из соображений удобства управления располагаемый в конце элемента body.
6) При наличии подсказки на jQuery браузер не должен отображать стандартную подсказку или значения свойств href и src, взятые из самого элемента; в подсказке гиперссылки должны становиться видимыми и активными, только если они включены в её тело в явном виде.
7) По умолчанию подсказка должна выводиться с отступом внизу по центру элемента; если этому препятствует граница экрана, подсказка выводится слева, справа или сверху с выравниванием по элементу.
8) Логика управления подсказками должна позволять легко, без дополнительного программирования использовать на одной и той же странице подсказки с поведением, отличным от умолчаний.
9) Графическое оформление подсказки полностью управляется параметрами, задаваемыми в CSS.
10) Ширина подсказки по умолчанию — 23em, отбивка от элемента, к которому она привязана — 7em.
Комплект поставки
• Исходный код.
• Уплотнённый код (под уплотнением понимается компрессия или минификация).
• Простой текстовый файл справки на грамотном русском или английском языке, содержащий пошаговые инструкции по внедрению решения на сайте, а также чёткие и краткие описания управляющих параметров.
Эскиз подсказки у элемента, имеющего свойство title "A title attribute value (if any) goes here to make a heading", приведен на иллюстрации.
Примечания
• Индийские перректальные решения не требуются и не рассматриваются.
• Поскольку мне отлично известно, что решения давно существуют и для профессионально пригодного вебконструктора являются типовой задачей, у меня большая просьба к отставной козы барабанщикам не тратить своё время на негодующие попытки доказать, что такого не бывает. Бывает и есть, причём во множестве.
• Мелких разводил также прошу не рассказывать, будто повторное использование общедоступного чужого кода требует многих дней и ночей труда коллектива высокооплачиваемых гуру. Объём работы для данного случая мне также хорошо известен — отсутствуют необходимые навыки для самостоятельного её выполнения в разумные сроки. Именно поэтому хочу поручить непрофильное для меня занятие грамотному специалисту.