Enjoyhint. Создание интерактивных подсказок на сайте.

Всем привет! Хочу рассказать о создании интерактивного тура по сайту с помощью Enjoyhint. Эта небольшая библиотека предоставляет функционал для достаточно наглядных подсказок, что позволит вам легко и просто провести первый инструктаж по работе со своим ресурсом. Чтобы увидеть, как все работает, можно взглянуть на демку http://xbsoftware.github.io/enjoyhint/, где можно наглядно понять, что это такое и с чем его едят :). Понравилось? Тогда будем разбираться, как нам сделать тоже самое. Для подключения нам потребуется jQuery не младше 1.7. Есть еще требование к подключению KineticJS v5.1.0, но она включена в файл скрипта, поэтому по факту, заботимся только о jQuery.

Подключаем последовательно все необходимое.

<!-- Подключаем jQuery-->
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<!-- Подключаем скрипт Enjoyhint-->
<script src="/enjoyhint/enjoyhint.min.js"></script>
<!-- Подключаем стили Enjoyhint-->
<link href="/enjoyhint/enjoyhint.css" rel="stylesheet">
<!-- Подключаем собственный скрипт с инициализацией работы Enjoyhint-->
<script type="text/javascript" src="/js/dispatch_enjoyhint.js"></script>

А теперь разберем код инициализации работы.

$(function(){
	var enjoyhint_instance = new EnjoyHint({});//Создаем экземпляр класса EnjoyHint
	//Создаем массив со списком шагов
	var enjoyhint_script_steps = [ //Каждый шаг - объект
									{//Событие next с переходом по кнопке "Next" , в нашем случае - "Понял!"
										'next #testid .testclass1' : 'Для перехода к следующему шагу обязательно нажмите кнопку "Понял!".',
										'nextButton' : {className: "myNext", text: "Понял!"},//Переименовываем кнопку Next
										'skipButton' : {className: "mySkip", text: "Закрыть!"},//Переименовываем кнопку Skip
										'shape': 'circle',
										'radius': 80
									},
									{//Событие click с необходимтью кликнуть на объект
										'click .testclass2' : 'Для перехода к следующему шагу нужно кликнуть на объект',
									},
									{//Событие key с обработкой нажатия клавиши
										'key .testclass3' : 'Для перехода к следующему шагу нужно нажать Enter',
										'keyCode' : 13,
										'shape': 'rect'
									},
	                             ];
	//Применям настройки, путим передачи шагов в объект
	enjoyhint_instance.set(enjoyhint_script_steps);
	//Запускаем Гайд!
	enjoyhint_instance.run();
});

Постарался все максимально прокомментировать в коде, надеюсь понятно. Как это работает лично у меня можно посмотреть на видео:

Для более подробной справки, можно обратится к официальному небольшому руководству на гит хабе https://github.com/xbsoftware/enjoyhint/blob/master/README.md. Скачать библиотеку можно по адресу https://github.com/xbsoftware/enjoyhint загружаем zip-архив, распаковываем и начинаем колдовать :)

Хочу предупредить о паре вещей. Первая связана с тем, что если на странице не окажется ни одного объекта, указанного в селекторах, то скрипт все равно разок запустится. Как... не очень хорошо, со смещением всех кнопок в верхний левый угол, так что отслеживайте это. Второй момент - это запуск гайда. По умолчанию всегда. То есть при каждой перезагрузке страницы будет запускаться гайд, поэтому контроль запуска ложиться на ваши плечи. Это достаточно логично, ведь серверной части у библиотеки нет, а делать контроль запуска на кэше - это до первой его очистки.

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

Если остались вопросы, пишите в комментариях, постараюсь ответить.

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

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