0

我有一个使用 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 中出现溢出或垂直滚动​​而不是列出的?

4

2 回答 2

1

以我的经验,这在 ie7 中的 html 或 body 元素上不起作用。我建议将整个文档包装在 a 中<div>,并将其设置为height:100%andwidth:100%并使用该 div 控制溢出。此外,(这可能是一个口味问题)您应该removeAttr('style')在元素上使用以返回其状态,而不是将 css 更改为overflow:visible.

附带说明一下,此方法也解决了 iPad 的问题,它与 ie7 存在相同的滚动问题

于 2012-05-17T19:02:11.697 回答
0

注意:

overflow:auto

似乎可以解决问题,但不确定为什么 :visible 属性在这种情况下不适用(因为它适用于所有其他浏览器)。IE7 是什么导致了这个问题?

于 2012-05-17T19:06:39.920 回答