我们正在使用fancybox2来显示图像.一切都很好,但是当更大的图像显示在fancybox中时,页面后面会滚动到顶部.关闭fancybox后,用户必须向下滚动到他打开盒子的位置. fancybox2站点上的示例不显示此行为.我找不到,发生这种情况的区别在哪里.
fancyOptions = {
type: 'image',closeBtn: false,autoSize: false,scrolling: 'no',type: 'image',padding: [10,10,10],beforeLoad: function(){
this.title = getTitle(this);
this.href = $(this.element).closest('a').attr('href');
},helpers: {
overlay: {
css: {
'background': 'rgba(0,0.7)'
},},title: {
type: 'inside'
}
}
};
我们正在使用fancybox2作为require.js中的一个模块.
.fancybox()调用在$(document).ready块中.
那里有2个滚动条,我用css隐藏了一个
.fancybox-overlay {
overflow: hidden !important;
}
解决方法
显然,fancybox会在显示图片时将body元素上的CSS属性溢出更改为hidden.这会导致背景向上滚动.所有你需要做的是注释掉行说溢出:hidden!important;在样式表jquery.fancybox.css中的.fancybox-lock部分.
请参阅fancybox2 / fancy box causes page to to jump to the top.