如果你转到http://google.com,你会发现有一个禁用的滚动条。
在我的网站上,为了避免让用户因页面移动而烦恼,我希望每页都有一个滚动条。但是,如果页面确实不需要滚动则禁用滚动条。
这似乎是一项微不足道的任务,但我似乎无法找到解决方案。也许我只是错过了一些东西。
无论如何,任何人都可以帮助解决这个问题吗?谢谢。
答案 0 :(得分:6)
overflow: auto
会在需要时显示滚动条,而在不需要时会消失。要始终显示滚动条,请使用"滚动"
body {
overflow-y: scroll;
}
答案 1 :(得分:3)
无法使用javascript禁用滚动条,但您可以将css overflow
属性设置为auto
,以便在出现溢出时滚动条可用,并且当没有溢出时,滚动条被禁用。将其应用于身体很可能是最佳解决方案:
body {
overflow: auto;
}
答案 2 :(得分:3)
滚动条在那里但是已禁用,具体取决于您使用的浏览器。我在Mac上使用FireFox,并且您提供的示例中没有滚动条。
不幸的是,这是我在开发网站时遇到的烦恼之一。我很确定<body style="overflow:hidden;">
(正如其他人已经回答的那样)无法解决问题。如果页面需要滚动条,它会添加它,但如果没有,您使用的浏览器将决定是否显示禁用的滚动条或根本不显示滚动条。我还没有找到解决这个问题的方法。
在回顾@Stephen P's回答之后,我认为他正在做些什么。我没有测试过,但它是有道理的。
答案 3 :(得分:1)
class DrawEllipses extends JComponent { // I change from JPanel to JComponent, this might not be necessary though...
...
...
protected void paintComponent(Graphics g) {
super.paintComponent(g);
// create the drawing buffer.
BufferedImage bi = new BufferedImage(this.getWidth(), this.getHeight(), BufferedImage.TYPE_INT_RGB);
Graphics big = bi.getGraphics();
// prepare transform
AffineTransform tx = new AffineTransform(); //
tx.translate(translateX, translateY); //
tx.scale(scale, scale); //
// get the buffer graphics and paint the background white.
Graphics2D g2 = (Graphics2D) big;
g2.setColor(Color.WHITE);
g2.fillRect(0, 0, this.getWidth(), this.getHeight());
// apply drawing logic to the Graphics of the buffer
g2.setTransform(tx);
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
for (Ellipse2D ellipse : ellipses) {
g2.setColor(ellipseColorMap.get(ellipse));
g2.fill(ellipse);
}
// finally, draw the buffer to the component graphics.
g.drawImage(bi, 0, 0, null);
}