Skip to content
Permalink
Browse files

Slider: Added paging - page up/down jumps by 1/5 the size of the range.

Fixes #3096 - Add a paging option for slider
  • Loading branch information...
scottgonzalez committed Nov 9, 2009
1 parent bff49fa commit 56c6def9266f24f97857cc7068fe2d65a7b285b0
Showing with 58 additions and 0 deletions.
  1. +46 −0 tests/unit/slider/slider_core.js
  2. +12 −0 ui/jquery.ui.slider.js
@@ -83,6 +83,52 @@ test("keydown END on handle sets value to max", function() {
el.slider('destroy');
});

test("keydown PAGE_UP on handle increases value by 1/5 range, not greater than max", function() {
$.each(['horizontal', 'vertical'], function(i, orientation) {
el = $('<div></div>');
options = {
max: 100,
min: 0,
orientation: orientation,
step: 1
};
el.slider(options);

el.slider("value", 70);

handle().simulate("keydown", { keyCode: $.ui.keyCode.PAGE_UP });
equals(el.slider("value"), 90);

handle().simulate("keydown", { keyCode: $.ui.keyCode.PAGE_UP });
equals(el.slider("value"), 100);

el.slider("destroy");
});
});

test("keydown PAGE_DOWN on handle decreases value by 1/5 range, not less than min", function() {
$.each(['horizontal', 'vertical'], function(i, orientation) {
el = $('<div></div>');
options = {
max: 100,
min: 0,
orientation: orientation,
step: 1
};
el.slider(options);

el.slider("value", 30);

handle().simulate("keydown", { keyCode: $.ui.keyCode.PAGE_DOWN });
equals(el.slider("value"), 10);

handle().simulate("keydown", { keyCode: $.ui.keyCode.PAGE_DOWN });
equals(el.slider("value"), 0);

el.slider("destroy");
});
});

test("keydown UP on handle increases value by step, not greater than max", function() {
el = $('<div></div>');
options = {
@@ -13,6 +13,10 @@

(function($) {

// number of pages in a slider
// (how many times can you page up/down to go through the whole range)
var numPages = 5;

$.widget("ui.slider", $.extend({}, $.ui.mouse, {

_init: function() {
@@ -119,6 +123,8 @@ $.widget("ui.slider", $.extend({}, $.ui.mouse, {
switch (event.keyCode) {
case $.ui.keyCode.HOME:
case $.ui.keyCode.END:
case $.ui.keyCode.PAGE_UP:
case $.ui.keyCode.PAGE_DOWN:
case $.ui.keyCode.UP:
case $.ui.keyCode.RIGHT:
case $.ui.keyCode.DOWN:
@@ -146,6 +152,12 @@ $.widget("ui.slider", $.extend({}, $.ui.mouse, {
case $.ui.keyCode.END:
newVal = self._valueMax();
break;
case $.ui.keyCode.PAGE_UP:
newVal = curVal + ((self._valueMax() - self._valueMin()) / numPages);
break;
case $.ui.keyCode.PAGE_DOWN:
newVal = curVal - ((self._valueMax() - self._valueMin()) / numPages);
break;
case $.ui.keyCode.UP:
case $.ui.keyCode.RIGHT:
if(curVal == self._valueMax()) return;

0 comments on commit 56c6def

Please sign in to comment.
You can’t perform that action at this time.