PEAR Manual
Prev |  | Next

# Pager "Jumping" vs. "Sliding"

Pager "Jumping" vs. "Sliding" -- Feature comparison of the two pager styles

## What are the differences between the two styles?

Since an example is worth 1000 words:

## "Jumping" Pager logic

Let's suppose that the data spans on 15 pages, and the window width is 5 page links. The links are built on "frames" of 5 pages each: [1-5] [6-10] [11-15] Pager in "Jumping" mode always shows the same 5 page links while you are on one of these pages. Here's a temporal succession of the links, starting from page 1 and moving forward. There are brakets around current page number to highlight this:

    a)    {1} 2  3  4  5  =>   // first frame: [1-5]
    b) <=  1 {2} 3  4  5  =>
    c) <=  1  2 {3} 4  5  =>
    d) <=  1  2  3 {4} 5  =>
    e) <=  1  2  3  4 {5} =>   // HERE IT JUMPS TO THE NEXT FRAME
    f) <= {6} 7  8  9 10  =>   // second frame: [6-10]
    g) <=  6 {7} 8  9 10  =>
    h) <=  6  7 {8} 9 10  =>

and so on. See what a "jumping window" frame is? When you reach a limit (in the example, you go from page 5 to page 6), it "jumps" to next frame (links from page 6 to 10).

## "Sliding" Pager logic

Instead of jumping from one frame to the other, with Pager in "Sliding" mode the change is done smoothly, and the current page is always shown at the center of the "window" (except of course for the first and the last pages):

    a)       {1} 2  3  4  5  => [15]
    b) [1] <= 1 {2} 3  4  5  => [15]
    c) [1] <= 1  2 {3} 4  5  => [15]  // HERE IT's STARTING WORKING AS DESIGNED
    d) [1] <= 2  3 {4} 5  6  => [15]  // see: current page number is at the center of the window
    e) [1] <= 3  4 {5} 6  7  => [15]  // and it stays there...
    f) [1] <= 4  5 {6} 7  8  => [15]
    g) [1] <= 5  6 {7} 8  9  => [15]
    h) [1] <= 6  7 {8} 9 10  => [15]

and so on.

## Other differences

Apart from the different "philosophy", there is one difference in the `delta` parameter: in "Jumping" mode, it's the number of page numbers to show; in "Sliding" mode it's the number of page numbers to show before and after the current one.

Prev | Home | Next
Introduction | Up | Pager::factory()