Я только что решил это для себя с помощью fancybox2 и URL-хэшей.
Вы можете использовать обратные вызовы Fancybox для установки и сброса хэшей.
Я использовал атрибуты данных в теге img для хранения идентификаторов img.
Затем вы можете проверить хэш в URL при загрузке страницы, получить индекс и открыть fancybox с данным индексом.
var option = {
afterLoad: function(links) {
var title = links.element.attr('data-my-img');
location.hash = title;
},
afterClose: function() {
location.hash = '';
}
},
hash = location.hash.substr(1),
gallery = $('.fancybox');
if(hash.length > 0){
//id
var i = null;
gallery.each(function(index) {
var o = $(this).attr('data-my-img');
if($(this).attr('data-my-img') == hash){
i = index;
return;
}
});
if(i != null){
option.index = i;
$.fancybox.open(gallery, option);
}
}
gallery.fancybox(option);