@@ -24,10 +24,10 @@ $.widget( "mobile.slider", $.mobile.widget, {
24
24
controlID = control . attr ( 'id' ) ,
25
25
labelID = controlID + '-label' ,
26
26
label = $ ( '[for=' + controlID + ']' ) . attr ( 'id' , labelID ) ,
27
- val = ( cType == 'input' ) ? control . val ( ) : control [ 0 ] . selectedIndex ,
27
+ val = ( cType == 'input' ) ? parseFloat ( control . val ( ) ) : control [ 0 ] . selectedIndex ,
28
28
min = ( cType == 'input' ) ? parseFloat ( control . attr ( 'min' ) ) : 0 ,
29
29
max = ( cType == 'input' ) ? parseFloat ( control . attr ( 'max' ) ) : control . find ( 'option' ) . length - 1 ,
30
- percent = val / ( max - min ) * 100 ,
30
+ percent = ( ( parseFloat ( val ) - min ) / ( max - min ) ) * 100 ,
31
31
snappedPercent = percent ,
32
32
slider = $ ( '<div class="ui-slider ' + selectClass + ' ui-btn-down-' + o . trackTheme + ' ui-btn-corner-all" role="application"></div>' ) ,
33
33
handle = $ ( '<a href="#" class="ui-slider-handle"></a>' )
@@ -44,6 +44,7 @@ $.widget( "mobile.slider", $.mobile.widget, {
44
44
} ) ,
45
45
dragging = false ;
46
46
47
+
47
48
if ( cType == 'select' ) {
48
49
slider . wrapInner ( '<div class="ui-slider-inneroffset"></div>' ) ;
49
50
var options = control . find ( 'option' ) ;
@@ -70,28 +71,30 @@ $.widget( "mobile.slider", $.mobile.widget, {
70
71
71
72
function slideUpdate ( event , val ) {
72
73
if ( val ) {
73
- percent = parseFloat ( val ) / ( max - min ) * 100 ;
74
+ percent = ( parseFloat ( val ) - min ) / ( max - min ) * 100 ;
74
75
} else {
75
76
var data = event . originalEvent . touches ? event . originalEvent . touches [ 0 ] : event ,
76
77
// a slight tolerance helped get to the ends of the slider
77
- tol = 4 ;
78
+ tol = 8 ;
78
79
if ( ! dragging
79
80
|| data . pageX < slider . offset ( ) . left - tol
80
81
|| data . pageX > slider . offset ( ) . left + slider . width ( ) + tol ) {
81
82
return ;
82
83
}
83
84
percent = Math . round ( ( ( data . pageX - slider . offset ( ) . left ) / slider . width ( ) ) * 100 ) ;
84
85
}
86
+
85
87
if ( percent < 0 ) { percent = 0 ; }
86
88
if ( percent > 100 ) { percent = 100 ; }
87
- var newval = Math . round ( ( percent / 100 ) * max ) ;
89
+ var newval = Math . round ( ( percent / 100 ) * ( max - min ) ) + min ;
90
+
88
91
if ( newval < min ) { newval = min ; }
89
92
if ( newval > max ) { newval = max ; }
90
93
//flip the stack of the bg colors
91
94
if ( percent > 60 && cType == 'select' ) {
92
95
93
96
}
94
- snappedPercent = Math . round ( newval / max * 100 ) ;
97
+ snappedPercent = Math . round ( newval / ( max - min ) * 100 ) ;
95
98
handle . css ( 'left' , percent + '%' ) ;
96
99
handle . attr ( {
97
100
'aria-valuenow' : ( cType == 'input' ) ? newval : control . find ( 'option' ) . eq ( newval ) . attr ( 'value' ) ,
0 commit comments