我知道我可以使用frameWidth和frameHeight选项来控制内联和iframe内容的帧大小,但是在显示图像时如何手动控制帧大小呢?
我的问题是我想要在非常水平且不垂直的花式盒中显示图像; fancybox对它进行了缩放,因此灯箱非常宽而且不是很高,这意味着您根本无法真正看到图像。
我想要的是让图像在灯箱中水平滚动。 (不,我无法改变图像)。
有什么想法吗?
答案 0 :(得分:3)
我最终只是攻击FancyBox并添加另一个选项来做我想要的。这是要点:
if (opts.imgManSize) {
_set_content('<img alt="" id="fancy_img" src="'+imagePreloader.src+'" />',opts.imgWidth,imagePreloader.height+20);
} else {
_set_content('<img alt="" id="fancy_img" src="'+imagePreloader.src+'" />',width,height);
}
...
if (opts.imgManSize) {
$("#fancy_content").css('overflow','auto');
}
...
if (opts.imgManSize) {
$('#fancy_img').css('width','auto');
}
...
$.fn.fancybox.defaults = {
...
imgManSize:false,
imgWidth:425,
imgHeight:355,
...
}
像魅力一样。
答案 1 :(得分:3)
您可以通过修改CSS来调整帧大小与图像大小的关系。
要覆盖插件创建的宽度和高度声明,请添加:
#fancybox-inner {
width: auto!important;
height: auto!important;
}
#fancybox-wrap{
width: auto!important;
height: auto!important;
}
并删除position:absolute
#fancybox-inner
答案 2 :(得分:2)
我自己有这个问题,并根据我发现的现有代码段编写了一些代码来解决这个问题,以便嵌入新的Vimeo IFRAME视频。这将允许您通过fancybox在fancybox上添加WIDTH和HEIGHT的URL参数。如果您不添加它们,默认将打开一个高度为90%和90%的IFRAME。
(function($){
$(function(){
// Fancybox: IFRAME
var fancybox_iframe = $('.fancybox-iframe');
if (fancybox_iframe.length > 0){
fancybox_iframe.each(function(index){
// Inline frame width param
if( $(this).attr('href').match(/width=[0-9]+/i) ){
var fWidth = parseInt($(this).attr('href').match(/width=[0-9]+/i)[0].replace('width=',''));
} else {
var fWidth = '90%';
}
// Inline frame height param
if( $(this).attr('href').match(/height=[0-9]+/i) ){
var fHeight = parseInt($(this).attr('href').match(/height=[0-9]+/i)[0].replace('height=',''));
} else {
var fHeight = '90%';
}
if(window.console&&window.console.log) {
console.log('fWidth #'+index+': '+fWidth);
console.log('fHeight #'+index+': '+fHeight);
}
$(this).fancybox({
'titlePosition' : 'inside',
'type' : 'iframe',
'autoScale' : true,
'padding' : '10',
'width' : fWidth,
'height' : fHeight,
'centerOnScroll' : true
});
});
}
});
})(jQuery);
要使用此功能,您将使用以下内容:
<a href="http://player.vimeo.com/video/16429685?color=ffffff&width=800&height=450" class="fancybox-iframe" title="Citizen Schools 101">Inline Vimeo Video</a>
我希望这可以帮助别人!
答案 3 :(得分:0)
如果使用ajax加载,则将图像包裹在div(如果是内联的)或页面中。 然后,将div上的样式设置为iframs的宽度,并将overflow css属性设置为overflow:scroll;