2013-03-13 29 views
0

我有一个自定义fancybox(fancybox2),其中内容是动态加载的。然而,内容增长的方块在浏览器窗口中保持不变,并且不会触发html的滚动条。如何在动态内容加载到fancybox时触发html滚动

但是,如果我运行$.fancybox.update()它调整并显示滚动条。我如何在不运行上述行的情况下自动执行此操作?

我的fancybox定义如下

$.fancybox({ 

    href  : '#mycontainer' 
    autoSize : true, 
    maxWidth : 760, 
    fitToView: false, 
    padding : 0, 
    fixed : true, 
    autoCenter : true, 
    beforeShow : function(){ 
     $('.fancybox-overlay-fixed').css({'overflow-y':'auto'}); 
    }, 
    afterShow : function(){ 
     $('.fancybox-overlay-fixed').css({'overflow-y':'auto'}); 
    }, 
}); 
+0

使用$ .fancybox.update()有什么问题?每次在fancybox中生成动态内容时,请运行它。 – 2013-03-13 07:04:35

+0

我有隐藏/显示mycontainer中的多个元素,我不想继续写$ .fancybox.update函数到处是否有一个回调函数,检测内容是否离开页面? – Neil 2013-03-13 07:21:26

+0

不是我知道我害怕。你最好的选择可能是溢出 - y:scroll;在这种情况下设置 - 在这种情况下,处理帧内容的宽度也会更容易。 (我知道它可能会比其他方式有吸引力)。就我个人而言,我不想使用具有这么多动态内容的灯箱......它听起来并不像所有这些都是用户友好的。 – 2013-03-13 07:52:36

回答

0

按照文档:

$.fancybox.update() - 自动调整大小的fancybox height匹配的内容高度。

autoWidth:如果设置为true,对于'inline','ajax'和'html'类型的内容高度是自动确定的。 布尔值;默认值:false

你可以尝试在配置的fancybox对象autoWidth:true