Scroll Bars

Now, let's find out to add scroll bars to a window.

Adding Scroll Bars

A scroll bar is typically used so that a user can move around in a large document. You can also use it when you need to ask for a value that falls within a certain range. Scroll bars can be created in a number of ways. In XUL, one can be created using the scrollbar tag. Some elements, such as text boxes, will also add scroll bars as necessary when the content inside is too large.

In this section, we'll discuss creating a stand-alone scroll bar. The user will set the value by adjusting the scroll bar. You probably won't use this too often. A scroll bar is made up of several parts, the slider, which is the main part of the scroll bar with the adjustable box, and the two arrow buttons on the end. A scroll bar creates all of these elements automatically.

The syntax of a scroll bar is as follows:

<scrollbar
    id="identifier"
    orient="horizontal"
    curpos="20"
    maxpos="100"
    increment="1"
    pageincrement="10"/>

The attributes are as follows:

The example given in the syntax above will create a scroll bar that can range from a value of 0 to 100. The value 100 might be the number of lines in a list, but it could be anything you want. The initial value in this example is 20. When clicking on one of the scroll bar arrows, the value would change by 1 either up or down. By paging through the scroll bar, the value will change by 10.

When the user clicks the scroll bar arrows, the thumb will move by the amount specified by the value increment. Increasing the value of this attribute will cause the scroll bar to move farther with each click. The leftmost or topmost position of the scroll bar has the value 0 and the rightmost or bottommost position of the scroll bar has the value given by maxpos.

By adjusting the values of the scroll bar, you can have the thumb positioned just as you want it and the change when the user clicks the arrows just as you want it.


(Next) Next, we'll find out how to create toolbars.

Add a note User Contributed Notes
June 23, 2005, 10:51 am not at available dot com
(Not related to the scrollbar element but overflow of elements. This seemed as good a spot to mention it.)

I have come across a problem using "style overflow: auto;".

If I have a window that contains a box that doesn't overflow there aren't any scrollbars, as expected.

I then use a drop down menu to select an option that changes the contents of the box so that the content now overflows. I use window.sizeToContent() and everything displays fine. The box now has scrollbars.

However, when I now select the original option, that shouldn't overflow, the scrollbars are still present. This becomes ugly because you have a tiny bit of scrolling in each direction to see the full content of the box.

I assume that this is not how overflow "auto" should work.

To get round this I found that this worked:

document.getElementById("Abox").style.overflow = "hidden";
self.sizeToContent();
document.getElementById("Abox").style.overflow = "auto";
self.sizeToContent();

i.e. force scrollbars off and redraw window, then reset to auto and redraw window.

Copyright © 1999 - 2005 XULPlanet.com