4

当我仅在 Internet Explorer 7 中显示表示模式窗口的 div 时,我需要锁定浏览器滚动条。谷歌搜索我发现我可以使用document.body.style.overflow='hidden',但这不适用于 IE7。我也尝试了document.body.scroll="no"which 工作,但只有在我将鼠标悬停在滚动条上之后:-S

有人知道更好的方法吗?

谢谢

4

4 回答 4

13

为了回答您的各种问题(包括您其他评论中的问题),我认为您使用了错误的定位方法。

试试position:fixedposition:absolute除了相对于绝对视口之外,它基本相同。即:如果用户滚动,该项目将停留在屏幕上的相同位置。

因此,考虑到这一点,您可以布置position:fixed叠加层。在其中你可以拥有你的position:absolute(或者fixed再次,如果你愿意的话——它不应该有所作为)模态框。

于 2009-01-07T21:05:57.280 回答
2

设置您的模态覆盖 div 以填充主体,因此即使他们滚动也无能为力,因为一切都隐藏在它下面。

于 2009-01-07T20:55:19.127 回答
0

你也可以通过使用隐藏滚动条,overflow:hidden这样用户就不会看到scollbars,所以它不会被诱惑到处乱跑:)

于 2009-01-07T21:55:27.430 回答
0

这可以帮助您:

documentOBJ = {
    /*Width and Height of the avaible viewport, what you'r seeing*/
    window : {
        x : function(){return (document.documentElement && document.documentElement.clientWidth) || window.innerWidth || self.innerWidth || document.body.clientWidth; },
        y : function(){return (document.documentElement && document.documentElement.clientHeight) || window.innerHeight || self.innerHeight || document.body.clientHeight;}
    },

    /*Scroll offset*/ 
    scroll : {
        x : function(){return ( document.documentElement && document.documentElement.scrollLeft) || window.pageXOffset || self.pageXOffset || document.body.scrollLeft; },
        y : function(){return ( document.documentElement && document.documentElement.scrollTop) || window.pageYOffset || self.pageYOffset || document.body.scrollTop; }
    },

    /*Height and width of the total of the xhtml in a page*/
    page : {
        x : function(){return (document.documentElement && document.documentElement.scrollWidth) ? document.documentElement.scrollWidth : (document.body.scrollWidth > document.body.offsetWidth) ? document.body.scrollWidth : document.body.offsetWidth; },
        y : function(){return (document.documentElement && document.documentElement.scrollHeight) ? document.documentElement.scrollHeight : (document.body.scrollHeight > document.body.offsetHeight) ? document.body.scrollHeight : document.body.offsetHeight; }
    },
    pointer : {}
}
于 2010-03-25T19:21:21.717 回答