我看了一下这篇文章How to create a direct link to any fancybox box并且我设法实现了它。但是,我注意到每当有人单击图像时,URL 都不会改变。所以,基本上,脚本所做的只是让我将图像的链接提供给人们。如果人们想自己捕捉图像链接并分享它们怎么办?当人们浏览网站时,是否还可以在地址栏中显示不同的图像 URL?
问问题
4822 次
3 回答
9
如果我理解正确:
- 当访问者点击图片时,图片会在fancybox中弹出。
- 当访问者导航到 page.html#image01 时,页面会加载已显示在 fancybox 中的 image01。
- 当访问者单击 image02 时,您希望 url 更新为 page.html#image02。
在这种情况下,您可以在单击图像时设置 url 哈希片段。
location.hash = "image02";
使用您提供的示例:
var thisHash = window.location.hash;
$(document).ready(function() {
$('.thumbs').fancybox({
prevEffect: 'fade',
nextEffect: 'fade',
closeBtn: true,
arrows: true,
nextClick: true,
padding: 15,
helpers: {
thumbs: {
width: 80,
height: 80
}
},
beforeShow: function() {
var id = this.element.attr("id")
if (id) {
window.location.hash = id;
}
},
beforeClose: function() {
window.location.hash = "";
}
});
if (thisHash) {
$(thisHash).trigger('click');
}
});
于 2012-09-07T16:48:20.333 回答
0
我使用了 Greg 的代码,但我使用了这些选项(并以不同的方式引用 id,因为 Greg 的方式对我不起作用):
onStart: function(selectedArray, selectedIndex, selectedOpts) {
var id = $(selectedArray[ selectedIndex ]).attr('id');
if (id) {
window.location.hash = id;
}
},
onClosed: function() {
window.location.hash = "";
}
于 2013-07-04T15:34:17.707 回答
0
演出前:函数(){ var id = $(this.element).attr("href"); 如果(身份证){ window.location.hash = id; } }, 关闭后:函数(){ history.pushState("", document.title, window.location.pathname + window.location.search); },
于 2016-09-20T16:19:50.390 回答