Jquery Colorbox滚动整个窗口,而不仅仅是Colorbox中的内容
Im使用Jquery Colorbox在Colorbox弹出窗口中显示信息 我已经打开了iframe,因此当新的颜色框打开时,如果内容超过颜色框的高度,则颜色框弹出窗口中的窗口将滚动 问题是,如果我使用鼠标上的滚动按钮继续滚动到colorbox窗口的末尾,并继续滚动整个窗口,而不仅仅是弹出窗口,将向下滚动Jquery Colorbox滚动整个窗口,而不仅仅是Colorbox中的内容,jquery,scroll,colorbox,Jquery,Scroll,Colorbox,Im使用Jquery Colorbox在Colorbox弹出窗口中显示信息 我已经打开了iframe,因此当新的颜色框打开时,如果内容超过颜色框的高度,则颜色框弹出窗口中的窗口将滚动 问题是,如果我使用鼠标上的滚动按钮继续滚动到colorbox窗口的末尾,并继续滚动整个窗口,而不仅仅是弹出窗口,将向下滚动 有没有办法防止这种情况?希望这是有意义的。如果您只想滚动颜色框,而不想滚动窗口本身,您可以这样做 $(window).scroll(function() { $(this).scrol
有没有办法防止这种情况?希望这是有意义的。如果您只想滚动颜色框,而不想滚动窗口本身,您可以这样做
$(window).scroll(function() {
$(this).scrollTop(0)
})
您可以进一步修改此选项以满足您的需要
检查处的工作示例执行此操作的一种方法是,在打开ColorBox对话框时将文档溢出设置为hidden,然后在对话框关闭时恢复。您可以绑定到ColorBox使用的自定义jQuery事件:
$(document).bind('cbox_open', function () {
$('html').css({ overflow: 'hidden' });
}).bind('cbox_closed', function () {
$('html').css({ overflow: 'auto' });
});
当父窗口上的滚动条消失并重新出现时,会出现一个小跳跃。这让我很困扰,所以我使用了这个问题中描述的鼠标滚轮方法:
我的使用有点复杂,因为我在ColorBox中使用iframe并显式设置滚动条。我在iframe页面中运行了一个绑定到mouseweel事件的脚本,并在元素底部停止了传播。对于简单的ColorBox使用,您应该能够通过将鼠标滚轮事件绑定到ColorBox框架中的可滚动元素来创建可重用的解决方案。您还可以将下一个事件添加到ColorBox初始值,以在ColorBox打开时禁用主文档上的滚动:
jQuery('.selector').colorbox({
onOpen: function(){
$('body').css({ overflow: 'hidden' });
},
onClosed: function(){
$('body').css({ overflow: '' });
}
});
资料来源:
注意:不要使用
overflow:“auto”
如果您喜欢在Colorbox关闭时溢出将返回到它的预览值,请使用overflow:“
。如果我理解正确,我相信我在Colorbox atm中遇到了相同/类似的问题。我在senechaux发布的一篇文章中找到了这个解决方案。
我为可能遇到相同问题的未来访客发布了此替代解决方案。这可以转储到脚本中的任何位置
$(document).on('cbox_open',function(){
$(document.body).css('position','fixed');
}).on('cbox_closed',function(){
$(document.body).css('position','');
});
我是将代码添加到颜色框弹出的页面中,还是需要将其添加到父窗口?将其添加到任意位置。您还可以在jquery脚本之后添加它,如
$(window).scroll(function(){$(this).scrollTop(0)})