Интерфейсные гайдеры с помощью jQuery

Интерфейсные гайдеры с помощью jQuery

В этой статье я хочу рассмотреть очень полезный плагин для jQuery — jQuery Guiders. Он позволяет удобным способом создавать интерактивные руководства для веб-интерфейсов, которые помогают пользователям быстрее разобраться с новым для них продуктом или его частью.

Те из вас, кто пользуется Gmail, не раз замечали подобный прием: при появлении какой-то новой кнопки или раздела в почте от Гугла, около нее появляется такое окошко со стрелочкой, кратко объясняющее ее назначение. Рассматриваемый плагин позволяет создавать как отдельные такие окошки, так и их цепочки — благодаря этому вы можете показать пользователю все нужные вам элементы.

Поисковая раскрутка сайта в западном сегменте.

Отображение гайдеров

Приветственное окно

Для начала попробуем вызвать отдельный гайдер. Скажем, мы хотим показать приветственное сообщение при открытие страницы. Код будет выглядеть вот так:

<script type="text/javascript">
guider.createGuider({
id: "first",
title: "Интерфейсные гайдеры с помощью jQuery",
description: "Гайдеры позволяют объяснять и указывать на отдельные элементы веб-интерфейса. Это окошко, например, показывает приветственное сообщение.",
overlay: true,
width: 500
}).show();
</script>
Гайдер, привязанный к элементу

Если же вы хотите привязать гайдер к какому-то элементу на страницы, вам необходимо указать его в параметре attachTo в таком виде:

<script type="text/javascript">
guider.createGuider({
id: "second",
attachTo: "#clock",
title: "Гайдеры обычно указывают на какие-то элементы на странице",
description: "Этот указывает на часы, находясь при этом в позиции 12 часов относительно них.",
position: 12
});
</script>
Цепочка гайдеров

Если вы хотите показать гайдеры в определенной последовательности, нам необходимо указывать ID следующего гайдера в параметре next для текущего:

<script type="text/javascript">
guider.createGuider({
id: "first",
title: "Интерфейсные гайдеры с помощью jQuery",
next: "second",
description: "Гайдеры позволяют объяснять и указывать на отдельные элементы веб-интерфейса. Это окошко, например, показывает приветственное сообщение.",
buttons: [{ name: "Далее", onclick: guider.next }],
overlay: true,
width: 500
}).show();

guider.createGuider({
id: "second",
attachTo: "#clock",
title: "Гайдеры обычно указывают на какие-то элементы на странице",
description: "Этот указывает на часы, находясь при этом в позиции 12 часов относительно них.",
buttons: [{ name: "Закрыть", onclick: guider.hideAll }],
position: 12
});
</script>
Кнопки

Вы можете создать свои кнопки и добавить к ним нужные вам действия. Параметр buttons принимает в качестве аргумента массив объектов, каждый из которых содержит обязательные параметр name и необязательный onclick. Вот так, например, можно добавить «Далее» и «Закрыть» к гайдеру:

<script type="text/javascript">
guider.createGuider({
id: "second",
attachTo: "#clock",
title: "Гайдеры обычно указывают на какие-то элементы на странице",
next: "third",
description: "Этот указывает на часы, находясь при этом в позиции 12 часов относительно них.",
buttons: [{ name: "Закрыть", onclick: guider.hideAll },
{ name: "Далее", onclick: guider.next }],
position: 12
});
</script>

А вот и пример, в котором можно увидеть все рассмотренные возможности в действии.

Пример гайдеров

Вызов гайдера из адресной строки

Допустим, вы хотите, чтобы при открытие страницы по обычному адресу (например, /mypage/) гайдеры не отображались, но отображался бы гайдер №2 при добавлении в адрес его вызова. Это можно сделать, добавив в адрес ID нужного гайдера в таком виде: http://vremenno.net/examples/jquery-interface-guiders/#guider=second

Параметры

Теперь рассмотрим список всех параметров, которые можно задавать для отдельного гайдера. 

id

Уникальный идентификатор гайдера, по которому происходит обращение к нему (например, из той же адресной строки).

attachTo

Сообщает, к какому элементу на странице привязать гайдер. Чтобы привязать к элементу с ID logo, надо написать attachTo: '#logo'.

position

Положение гайдера относительно элемента. Указывается как стрелки в часах: 12 (сверху), 6 (снизу), 3 (справа) или 9 (слева).

title

Заголовок гайдера.

description

Текст гайдера.

next

Идентификатор следующего гайдера.

buttons

Кнопки. Как их указывать разобрали выше.

buttonCustomHTML

Произвольный код, который будет добавлен после кнопок.

width

Ширина гайдера.

overlay

Принимает true, если надо перекрыть контент страницы, или false, если не надо.

Методы

Для взаимодействия с гайдерами есть несколько методов. Их можно использовать как внутри объекта, так и извне.

guider.next()

Открывает следующий после текущего гайдер.

guider.hideAll()

Скрывает все гайдеры.

 

Итак, как обычно пример с комментариями кода и архив со всеми скриптами.

Пример Архив

 

Что думаете по поводу такого решения? Удобно ли это пользователям?

Расскажите друзьям

Оцените статью:
  • 1
  • 2
  • 3
  • 4
  • 5

Комментарии — 19

Stas
К сожалению, не помню чтобы видел хоть один tooltip плагин, который бы нормально отрабатывал в IE. Я про оформление говорю.

Например, конкретно этот фэйлит показывать тени и скругления - это было бы ок, если бы стрелка баббла, зашитая картинков в css, не имела этих теней. Т.е. она выбивается. И это в ie9, хотя как рисовать тени в ie известно еще с 2006 года. Кстати, еще страница с примерами показывает черный фон, при загрузке и отображении начального tooltip'а. Не знаю проблема ли это плагина или нет.

Вообщем плагин надо допиливать, а это печально.

ЗЫ А еще у вас коменты не отправляются, если страница открывается из Google Reader
#
Stas
Макс
Спасибо! Полезно. А как из появляющегося окна сделать полноценный html? Вставить изображение, к примеру?
#
Макс
Макс
И в опере тоже не оставляются
#
Макс
Grin
Макс, вставить HTML можно прямо в description.
Grin
Комментарии поправили, всем спасибо за багрепорт.
Макс
Не-а, не срабатывает... Вставил несчастную ссылку.
#
Макс
Макс
Все нашел свой косяк, я использовал "" а надо ''
#
Макс
Макс
Какая-то бяка вставилась в предыдущий коммент - \
#
Макс
Alexander
Пока что не получилось. Но буду дальше пробовать.
psd
Класс, отличные подсказки получаются.
#
psd
ЮрийМ
Спасибо, я тоже недавно начал изучать jQuery, отличный язык программирования, а главное проще чем традиционный javascript.
Евгений
А в чем собственно трудность запустить функцию "больше не показывать подсказки"?
Даже обычных кук и одного if хватит, чтобы это реализовать.
Елена
Полезная информация. Попробую использовать.
Konst
Спасибо за пример!!! Буду пользоваться!!!
#
Konst
Лев
Вопрос такой: а можно ли в description использовать php, а не обычный текст? Например, можно ли туда впихнуть форму обратной связи?
Сергеей
Лев,
вы,наверное,плохо понимаете,как работает PHP - иначе не задавали бы таких вопросов:)
Конечно,можно. И HTML можно, и форму обратной связи можно.
#
Сергеей
Макс
Ребята, а как сделать так, что бы первое сообщение появилось не сразу после загрузки страницы, а например, по прошествии 10 секунд после этого? Спасибо!
mish-ka-mishka
А как мне HTML добавить? buttonCustomHTML не работает, в description тоже не получается...
#
mish-ka-mishka

Новый комментарий

как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть
как выглядит какой тег
жирный текст <b>жирный текст</b>
курсивный тект <i>курсивный тект</i>
зачеркнутый текст <s>зачеркнутый текст</s>
подчеркнутый текст <u>подчеркнутый текст</u>
ссылка <a href="адрес">ссылка</a>
function foo() { ... }
<pre><code>function foo() { ... } </code></pre>
разрешенные теги или посмотреть как будет выглядеть

metin2 pvp metin2 pvp serverler pvp serverler