Javascript 使用窗口的滚动条弹出
我正在尝试创建一个使用窗口滚动条而不是div滚动条的弹出窗口。类似于正在播放的内容。如何达到这个效果?我的所有尝试都失败,滚动条出现在div上。窗口滚动条滚动正文内容。打开弹出窗口时,您应该记住当前窗口的左/右滚动位置,然后对html和正文应用Javascript 使用窗口的滚动条弹出,javascript,css,scrollbar,Javascript,Css,Scrollbar,我正在尝试创建一个使用窗口滚动条而不是div滚动条的弹出窗口。类似于正在播放的内容。如何达到这个效果?我的所有尝试都失败,滚动条出现在div上。窗口滚动条滚动正文内容。打开弹出窗口时,您应该记住当前窗口的左/右滚动位置,然后对html和正文应用溢出:隐藏,高度/宽度:100%,这将阻止页面滚动 使用位置:绝对,z-index:9999,左/顶:0,高度/宽度:100%,溢出:自动,创建覆盖,并将其附加到正文-它将是弹出窗口的可滚动容器 在该容器内部创建div,其中包含位置:绝对值和左/上值,必要
溢出:隐藏,高度/宽度:100%
,这将阻止页面滚动
使用位置:绝对,z-index:9999
,左/顶:0
,高度/宽度:100%
,溢出:自动
,创建覆盖,并将其附加到正文-它将是弹出窗口的可滚动容器
在该容器内部创建div
,其中包含位置:绝对值和左/上
值,必要时以js计算以使其居中
关闭弹出窗口后,恢复html/body的溢出
,高度/宽度
样式,并应用在打开弹出窗口之前保存的scrollLeft/scrollTop值。这不完全起作用。当我实现它时,我可以滚动到一个点,但是如果我的浏览器被调整到更小的尺寸,它就不能解释它。请澄清你的问题,因为我不清楚。覆盖设置为高度/宽度:100%
,因此在调整浏览器窗口大小时,它将自动调整大小oveflow:auto
style允许滚动内部内容(如果大于覆盖)。您应该处理窗口。调整事件的大小以使模式窗口居中,但请确保top/left>=0,否则您将无法滚动到这些left/top值。您的样式可能有问题。您不应该使用位置:fixed
,因为它会使元素不可滚动。看看这个包含最简单的CSS/JS/HTML的basic,容器的宽度不会像您的示例那样在浏览器调整大小时改变,尽管它是精确复制的。我不明白为什么。正如您在这里看到的:模式根本不会对调整大小做出反应,并且在溢出时仍然不会滚动。我已经查看了打开模式时应用的CSS,我没有看到任何影响模式的左上角属性的内容。请尽量不要将此网站用于此目的-它的行为很奇怪。当我试图在firebug中查看iframe主体时,它显示iframe主体高度/宽度远远大于浏览器大小。这就是为什么你不能滚动它。最好在本地HTML文件上测试,或者至少在JSFIDLE上测试。