我有一个使用jQuery Colorbox插件的页面。我的页面JS是:
<script type="text/javascript">
$(document).ready(function(){
$(document).bind('cbox_open', function() {
$("html").css("overflow", "hidden");
});
$(document).bind('cbox_closed', function() {
$("html").css("overflow", "visible");
});
$(".iframe").colorbox({innerWidth:780, innerHeight:"90%", iframe:true});
});
</script>
前两个代码段的目的是在打开时禁用彩色框后面的父页面上的垂直滚动条。这没有问题。此外,当颜色框关闭时,垂直条应重新出现。后者适用于所有浏览器, IE 7除外。
我知道它在代码中没有任何错误到达代码有两个原因:
1 - 测试警报在“$(document).bind('cbox_closed',function(){”
中有效2 - 它适用于IE 8 +的所有其他浏览器和版本。
我已将溢出值更改为“滚动”,但这会为页面添加不必要的水平滚动,这是不受欢迎的。
在ie7中出现溢出或垂直滚动是否有不同的方法?
答案 0 :(得分:1)
根据我的经验,这在html或body元素的ie7中不起作用。我建议将整个文档整理到<div>
并将其设置为height:100%
和width:100%
,然后使用该div控制溢出。此外,(这可能是品味问题)您应该在元素上使用removeAttr('style')
来返回其状态,而不是将css更改为overflow:visible
。
作为旁注,这个方法也解决了iPad的问题,它遇到了与ie7相同的滚动问题
答案 1 :(得分:0)
值得注意的是:
overflow:auto
似乎可以解决这个问题,但不确定为什么:visible属性在这种情况下不适用(因为它适用于所有其他浏览器)。是什么让IE7陷入困境?