Галерея PikaChoose и навигация интегрированного Fancybox
Ну что, начнемс. По запросу PikaChoose (не путать с Pok?mon-ом) в google.com или yandex.ru, вы, мои дорогие (я меня паранойя, что блог читают еще люди окромя меня), так вот, по этому запросу вы найдете много всякого полезного. И то, что это плагин для слайд-шоу с массой возможностей, и то что он интегрируется с Fancybox, и то что можно прикрутить jCarousel и ваще — сказка, а не плагин для обыкновенных задач.
Все это хорошо, но вот я добавлю все таки отсебятины, ну не совсем отсебятины, но все же.
Итак, необходимые опции для работы с PikaChoose jQuery Image Gallery Pok?mon, а также как прикрутить jCarousel можно найти в разделе Documentation, как интегрировать Fancybox найдем там же в разделе Fancybox Integration.
В итоге собранный кодик, благодаря официальным докам, будет иметь приблизительно такой вид, следующий ниже.
В шапке подключаем:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.js"></script> <script type="text/javascript" src="/lib/jquery.jcarousel.min.js"></script> <script type="text/javascript" src="/lib/jquery.pikachoose.js"></script> <script type="text/javascript" src="/lib/jquery.fancybox.js"></script> <link type="text/css" href="/css/jquery.pikachoose.css" rel="stylesheet" /> <link type="text/css" href="/css/jquery.fancybox.css" rel="stylesheet" /> <script language="javascript"> $(document).ready(function (){ var a = function(self){ self.anchor.fancybox(); }; $("#pikame").PikaChoose({buildFinished:a, autoPlay:false, showCaption:false, carousel:true}); }); </script>
В месте где выводится галерея:
<ul id="pikame"> <li><a href="/images/myimage1_l.jpg"><img src="/images/myimage1_m.jpg"></a></li> <li><a href="/images/myimage2_l.jpg"><img src="/images/myimage2_m.jpg"></a></li> </ul>
В принципе можно пользоваться, а теперь внимание! Переходим к названию нашей статейки 🙂
Все естественно будет работать кроме навигации (стрелки "вперед" и "назад") в окне Fancybox. Сиё есть неудобняк. Я не хочу открывать и закрывать картину для того что-бы посмотреть другую, я хочу стрелки! А еще я хочу превью отдельно, обычный рисунок отдельно и во всплывающем который отдельно тоже!
Хотим — получаем.
Реализуем наши хотелки
Скриптец преобразуется в вот это чудо:
<script language="javascript"> $(document).ready(function (){ var a = function(self){ // self.anchor.fancybox(); var fancy = function(){ var play=self.options.autoPlay; $('body').find('a.previmages,a.nextimages').remove(); self.active.parents('li:first').prevAll().each(function(){ var href=$(this).find('img').data('clickThrough'); $('body').prepend($('<a>').attr({'href':href,'class':'previmages', 'rel':'gallery'}).css('display','none')); }); self.active.parents('li:first').nextAll().each(function(){ var href=$(this).find('img').data('clickThrough'); $('body').append($('<a>').attr({'href':href,'class':'nextimages', 'rel':'gallery'}).css('display','none')); }); self.anchor.attr('rel','gallery'); $('a[rel=gallery]').fancybox({ onStart:function(){if(play){self.imgPlay.trigger('click');}} }); } self.anchor.bind('click',fancy); fancy(); }; $("#pikame").PikaChoose({buildFinished:a, autoPlay:false, showCaption:false, carousel:true}); }); </script>
Ну а вывод будет таким:
<ul id="pikame"> <li><a href="/images/full/myimage1_l.jpg"><img src="/images/thumbs/myimage1_s.jpg" ref="/images/prv/myimage1_m.jpg"></a></li> <li><a href="/images/full/myimage2_l.jpg"><img src="/images/thumbs/myimage2_s.jpg" ref="/images/prv/myimage1_m.jpg"></a></li> </ul>
full — тут то изображение которое во всплывающем окне (большая картиночка)
prv — тут изображение среднее, на которое нам нуна кликнуть
thumbs — ну и навигационные тумбы
Как этим всем пользоваться, надеюсь, понятно.
Шпасибо за внимание и Добра!
17 апреля, 2015 в 00:34|date at time
Мужик, ты просто великолепен. Точненько в точку. Тысячу раз спасибо тебе.
28 апреля, 2015 в 11:54|date at time
Всегда пожалуйста 🙂
28 января, 2016 в 12:30|date at time
Спасибо за стрелочки в фансибоксе. Пригодилось!
28 января, 2016 в 15:22|date at time
Всегда пожалуйста.