能否禁用滚动条而不是隐藏?

3

我想知道是否有可能在页面上禁用滚动条而不是隐藏它?当我打开模态对话框时,我希望它仍然保留在页面上,但不希望用户能够滚动主页面。因此,完美的功能应该是:

短页面 - 没有滚动条;

长页面 - 出现滚动条;

打开长页面模态对话框 - 滚动条仍然存在,但无法使用。


可能是禁用浏览器垂直和水平滚动条的重复问题。 - Naftali
1
我不想隐藏滚动条,因为它会通过滚动条的宽度创建页面移位。如果可能的话,我想要禁用它,变灰或者采取其他可能的方式。 - Victor
https://dev59.com/P2oy5IYBdhLWcg3wN7YX - Yousef Salimpour
2个回答

3

当你有一个模态框时,可以通过调整windowonscroll来进行操作。

示例:http://jsfiddle.net/maniator/DmmEv/

代码:

var scrollX = window.scrollX, scrollY = window.scrollY;
window.onscroll = function(e){
    scroll(scrollX,scrollY)
}

实例:
点击“Click Me”后,滚动条将保持在原位
演示地址: http://jsfiddle.net/maniator/DmmEv/6/


这个评论应该得到投票!非常好用。 - Exegesis
这不是注释。这是一个回答。 - Naftali

-1

或许尝试一下:

<body style="overflow: scroll;">
Hello
<body>

1
会不会让滚动条始终显示出来呢?我真的不想在页面很短的时候出现它。或者当模态对话框出现时,用户仍然可以使用它吗? - Victor
哦,我以为那是你想要的。好的,把“scroll”改成“auto”。 - Mike Christensen
谢谢你的建议,它在FF中有效,但用户仍然可以在旧版IE中使用滚动条。 - Victor
我猜我没有理解你想要什么。你是想显示滚动条还是不显示? - Mike Christensen
就像我在问题中提到的那样。当页面很短时,我不想显示滚动条,而当页面很长时,我希望它能够显示,但是当模态对话框打开并且页面有滚动条时,我希望禁用滚动条。希望这很清楚 :) - Victor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接