Связаться с нами
Заказ обратного звонка

Как сделать скролл пальцем на увеличенном фото в fancybox

> > Как сделать скролл пальцем на увеличенном фото в fancybox

Поведенческий фактор показывает, что люди, которые просматривают сайты с мобильных устройств и планшетов привыкли перелистывать изображения путем скролла(выражаясь техническим термином, использовать «swipe»). Swipe позволяет перелистывать «страницы» привычным движением пальца, а не щелкать по стрелкам «лево» «право», которые на мобильных устройствах не такие уж и удобные.

Так как по умолчанию в OkayCMS и Simpla CMS встроен скрипт fancybox, который не поддерживает по умолчанию функцию «Swipe» это может быть полезным для Вашего сайта, особенно если он адаптивный.

Приступим к установке:

Первый шаг, это подключение библиотеки, которая поддерживает технологию Swipe

Для этого найдите подключение скрипта fancybox(обычно файл index.tpl) и выполните следующее:

После строки:
<script type="text/javascript" src="js/fancybox/jquery.fancybox.pack.js"></script>  {*это подключение скрипта на сайте*}

Добавьте новый код: 
<script type="text/javascript" src="js/fancybox/jquery.mousewheel-3.0.6.pack.js"></script>
<script type="text/javascript" src="js/fancybox/jquery.touchSwipe.js"></script>

 

После этого приступаем ко второму шагу и выполняем настройку скрипта, для этого найдите вызов функции fancybox( может находиться в файле по адресу design/название темы/html/product.tpl или же в одном из скриптов в папке design/js ) :

//Зум картинок
	$("a.zoom").fancybox({
		prevEffect	: 'fade',
		nextEffect	: 'fade'
	});

 

И замените эту часть кода на вот эту:

$("a.zoom").fancybox({
		prevEffect	: 'fade',
		nextEffect	: 'fade',
		helpers	: {
			thumbs	: {
				width	: 50,
				height	: 50
			}
		},
		beforeShow: function () {
			var imgAlt = $(this.element).find("img").attr("alt");
			if (imgAlt) {
				$(".fancybox-image").attr("alt", imgAlt);
			} 
		},
        afterShow: function() {
            $('.fancybox-wrap').swipe({
                swipe : function(event, direction) {
                    if (direction === 'left' || direction === 'up') {
                        $.fancybox.prev( direction );
                    } else {
                        $.fancybox.next( direction );
                    }
                }
            });
        }
	});

 

Из конструкции
                    if (direction === 'left' || direction === 'up') {
                        $.fancybox.prev( direction );
                    } else {
                        $.fancybox.next( direction );
                    }

 

Следует что при движении влево и вверх, будет показываться предыдущее изображение, то есть перелистывание влево, а при движениях вниз и вправо – перелистывание вправо.

Спасибо за внимание! В случае вопросов обращайтесь к нам.

Как отключить выделение номера телефона в браузере на iPhone Как сделать красивое отображение программного кода в странице