我想用img制作fancybox画廊而不使用链接(一个href)?我怎么能这样做?
HTML:
<div id="foo2">
<img src="/images/banners/001.jpg" rel="downslider" alt="" width="80" height="80" />
<img src="/images/banners/002.jpg" rel="downslider" alt="" width="80" height="80" />
<img src="/images/banners/003.jpg" rel="downslider" alt="" width="80" height="80" />
<img src="/images/banners/004.jpg" rel="downslider" alt="" width="80" height="80" />
<img src="/images/banners/005.jpg" rel="downslider" alt="" width="80" height="80" />
<img src="/images/banners/006.jpg" rel="downslider" alt="" width="80" height="80" />
<img src="/images/banners/007.jpg" rel="downslider" alt="" width="80" height="80" />
<img src="/images/banners/008.jpg" rel="downslider" alt="" width="80" height="80" />
.....
</div>
Run Code Online (Sandbox Code Playgroud)
JS(现在它适用于单个图像,没有图库效果):
$("#foo2 img").click(function(e) {
var url = $(this).attr('src');
var rel = $(this).attr('rel');
var content = '<img src="' + url + '" rel="'+ rel + '" />';
$.fancybox({
'transitionIn' : 'elastic',
'transitionOut' : 'elastic',
'speedIn' : 600,
'speedOut' : 200,
'overlayShow' : false,
'content' : content
});
});
Run Code Online (Sandbox Code Playgroud)
JFK*_*JFK 10
.click()除非您在fancybox脚本本身内设置库的所有元素,否则您不能使用手动方法库,例如:
$("#foo2 img").click(function(e) {
$.fancybox([
'images/01.jpg',
'images/02.jpg', // etc
],{
// fancybox options
'type': 'image' // etc.
}); // fancybox
}); // click
Run Code Online (Sandbox Code Playgroud)
但是,为了使其按照您想要的方式工作并模拟常规的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>
Run Code Online (Sandbox Code Playgroud)
这会从<img>标签创建一个fancybox图库,具有良好的循环效果.此外,CSS我们可以使用fancybox箭头图标进行导航控制.在这里查看一个工作示例.
由于导航控件完全是手动的,因此您实际上并不需要标记rel上的属性<img>.
请注意,上面的代码适用于Fancybox v1.3.x(我假设您使用的是v1.3.x,因为API选项).
小智 9
这对我有用:
$(".CLASSNAME").each(function(){
$(this).fancybox({
href : $(this).attr('src')
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13955 次 |
| 最近记录: |