当我点击任何使用fancybox的内容时,我需要为它生成一个特定的URL,因此当我将此链接发送给某人时,它会打开我想要的特定框。
例如: 的 fancybox.net/home 当我点击第一张图片时,该链接仍然 fancybox.net/home 我希望当我点击图片时,会生成网址并显示在地址栏中,例如: fancybox.net/home/imageid=1 所以当我向某人发送 fancybox.net/home/imageid=1 时,它已经打开了框中的图像
谢谢!
(就像facebook照片一样,当您点击任何照片时,照片会在一个方框中打开,但地址栏会更改为图片链接)
////// 更新#1 //////
我做了JFK的建议,但经过一个小时的尝试,我仍然不知道为什么盒子不一样。
看看之间的差异:
代码:
<script type="text/javascript">
var thisHash = window.location.hash;
$(document).ready(function() {
if(window.location.hash) {
$(thisHash).fancybox({
prevEffect : 'none',
nextEffect : 'none',
closeBtn : false,
arrows : true,
nextClick : true,
helpers : {
thumbs : {
width : 80,
height : 80
},
title : {
type : 'inside'
},
buttons : {}
},
afterLoad : function() {
this.title = (this.index + 1) + ' de ' + this.group.length + '<div id="curti"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.google.com.br&send=true&layout=standard&width=45&show_faces=false&action=like&colorscheme=light&font&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:56px; height:24px;" allowTransparency="true"></iframe></div>';
}
}).trigger('click');
}
$('.fancylink').fancybox({
prevEffect : 'none',
nextEffect : 'none',
closeBtn : false,
arrows : true,
nextClick : true,
helpers : {
thumbs : {
width : 80,
height : 80
},
title : {
type : 'inside'
},
buttons : {}
},
afterLoad : function() {
this.title = (this.index + 1) + ' de ' + this.group.length + '<div id="curti"><iframe src="http://www.facebook.com/plugins/like.php?href=http://www.google.com.br&send=true&layout=standard&width=45&show_faces=false&action=like&colorscheme=light&font&height=35" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:56px; height:24px;" allowTransparency="true"></iframe></div>';
}
});
}); // ready
</script>
该脚本有什么问题?
答案 0 :(得分:14)
首先,您仍然需要在打开fancybox的页面中链接到您的图片,如:
<a id="image01" class="fancylink" rel="gallery" href="images/01.jpg" title="image 01">open image 01</a>
<a id="image02" class="fancylink" rel="gallery" href="images/02.jpg" title="image 02">open image 02</a>
......等等。
注意我要为每个锚添加ID
和class
,因为我必须通过网址定位它们的唯一方法是通过他们的ID ...当我在页面上时,该类将用于以常规方式在fancybox中打开这些图像,因此我不需要为每个ID编写特定的fancybox代码。
然后在引用页面上设置此脚本:
<script type="text/javascript">
var thisHash = window.location.hash;
$(document).ready(function() {
if(window.location.hash) {
$(thisHash).fancybox().trigger('click');
}
$('.fancylink').fancybox();
}); // ready
</script>
然后您可以提供针对每个图片的网址,例如
http://mydomain.com/page.html#image01
或
http://mydomain.com/page.html#image02
等
想要工作演示?
http://picssel.com/playground/jquery/targetByID_28jan12.html#image01
http://picssel.com/playground/jquery/targetByID_28jan12.html#image02
注意:此代码适用于fancybox v1.3.x,因为您使用了fancybox.net作为参考。
更新#1 :如果您需要fancybox选项,则需要在选择器ID
和class
中添加它们,如:
<script type="text/javascript">
var thisHash = window.location.hash;
$(document).ready(function() {
if(window.location.hash) {
$(thisHash).fancybox({
padding: 0
// more API options
}).trigger('click');
}
$('.fancylink').fancybox({
padding: 0
// more API options
});
}); // ready
</script>
当然,对fancybox v1.3.x或2.x
使用正确的选项