禁用滚动条

时间:2010-11-20 01:30:10

标签: javascript html layout scrollbar

如果你转到http://google.com,你会发现有一个禁用的滚动条。

在我的网站上,为了避免让用户因页面移动而烦恼,我希望每页都有一个滚动条。但是,如果页面确实不需要滚动则禁用滚动条。

这似乎是一项微不足道的任务,但我似乎无法找到解决方案。也许我只是错过了一些东西。

无论如何,任何人都可以帮助解决这个问题吗?谢谢。

4 个答案:

答案 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);
}