Вы не можете создать галерею с помощью ручного метода .click()
, если не установите все элементы галереи внутри самого сценария fancybox, например:
$("#foo2 img").click(function(e) {
$.fancybox([
'images/01.jpg',
'images/02.jpg', // etc
],{
// fancybox options
'type': 'image' // etc.
}); // fancybox
}); // click
Однако, чтобы заставить его работать так, как вы хотите, и моделировать обычную галерею fancybox без использования ссылок (теги <a>
с атрибутами href
), вам необходимо создать собственную функцию с собственными пользовательскими методами навигации.
Не меняя HTML
, попробуйте JS
:
<script type="text/javascript">
function fancyBoxMe(index){
var gallerySize = $("#foo2 img").size();
if((index+1) == gallerySize){ nexT = 0 } else { nexT = index+1}
if(index == 0){ preV = (gallerySize-1) } else { preV = index-1}
var tarGet = $('#foo2 img').eq(index).attr('src');
$.fancybox({
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'speedIn' : 600,
'speedOut' : 200,
'overlayShow' : false,
'href': tarGet,
'titlePosition': 'inside',
'titleFormat' : function(){
return 'Image '+(index+1)+' of '+gallerySize+'<a id="preV" href="javascript:;" onclick="fancyBoxMe('+preV+')">prev</a> <a id="nexT" href="javascript:;" onclick="fancyBoxMe('+nexT+')">next</a>';
}
}); // fancybox
} // fancyBoxMe
$(document).ready(function() {
$("#foo2 img").each(function(i){
$(this).bind('click', function(){
fancyBoxMe(i);
}); //bind
}); //each
}); // ready
</script>
Это создает галерею fancybox из тегов <img>
с приятным эффектом зацикливания. Кроме того, с небольшим значением CSS
мы можем иметь элементы управления навигацией, используя значки стрелок fancybox. См. Рабочий пример здесь .
Поскольку управление навигацией полностью ручное, на самом деле вам не нужен атрибут rel
в теге <img>
.
Обратите внимание , что приведенный выше код предназначен для Fancybox v1.3.x (я предполагал, что вы используете v1.3.x, потому что параметры API).