Skip to content
Permalink
Browse files

Spinner: Use a polynomial instead of hard-coded blocks for incrementa…

…l stepping.
  • Loading branch information
scottgonzalez committed Aug 7, 2011
1 parent 2a8a77a commit 8c5a6f7241efeb285efa6b7860e3817f04dde788
Showing with 7 additions and 10 deletions.
  1. +7 −10 ui/jquery.ui.spinner.js
@@ -239,16 +239,7 @@ $.widget( "ui.spinner", {
this.counter = 1;
}

// TODO refactor, maybe figure out some non-linear math
// x*x*x/50000 - x*x/500 + 17*x/200 + 1
var newVal = this.value() + step * (this.options.incremental &&
this.counter > 20
? this.counter > 100
? this.counter > 200
? 100
: 10
: 2
: 1);
var newVal = this.value() + step * this._increment( this.counter );

// clamp the new value
newVal = this._trimValue( newVal );
@@ -259,6 +250,12 @@ $.widget( "ui.spinner", {
}
},

_increment: function( i ) {
return this.options.incremental ?
Math.floor( i*i*i/50000 - i*i/500 + 17*i/200 + 1 ) :
1;
},

_trimValue: function( value ) {
var options = this.options;

0 comments on commit 8c5a6f7

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