From ad6d040e6f326d6811eba2f82aa2155e4577e8ec Mon Sep 17 00:00:00 2001 From: Hans-Peter Buniat Date: Fri, 2 Sep 2011 16:02:55 +0200 Subject: [PATCH 1/3] added support for a background-theme, to highlight the background between slider-start and current handle-position --- js/jquery.mobile.forms.slider.js | 10 ++++++++++ tests/unit/slider/index.html | 4 ++++ tests/unit/slider/slider_events.js | 17 +++++++++++++---- themes/default/jquery.mobile.forms.slider.css | 1 + 4 files changed, 28 insertions(+), 4 deletions(-) mode change 100644 => 100755 js/jquery.mobile.forms.slider.js mode change 100644 => 100755 tests/unit/slider/index.html mode change 100644 => 100755 tests/unit/slider/slider_events.js mode change 100644 => 100755 themes/default/jquery.mobile.forms.slider.css diff --git a/js/jquery.mobile.forms.slider.js b/js/jquery.mobile.forms.slider.js old mode 100644 new mode 100755 index 9195fca14a1..b4a20eb6fdd --- a/js/jquery.mobile.forms.slider.js +++ b/js/jquery.mobile.forms.slider.js @@ -11,6 +11,7 @@ $.widget( "mobile.slider", $.mobile.widget, { options: { theme: null, trackTheme: null, + rangeTheme: null, disabled: false, initSelector: "input[type='range'], :jqmData(type='range'), :jqmData(role='slider')" }, @@ -28,8 +29,12 @@ $.widget( "mobile.slider", $.mobile.widget, { theme = this.options.theme ? this.options.theme : parentTheme, + // theme of the outer track-bar trackTheme = this.options.trackTheme ? this.options.trackTheme : parentTheme, + // theme for the part between start & current slider position + rangeTheme = this.options.rangeTheme ? this.options.rangeTheme : trackTheme, + cType = control[ 0 ].nodeName.toLowerCase(), selectClass = ( cType == "select" ) ? "ui-slider-switch" : "", @@ -95,6 +100,9 @@ $.widget( "mobile.slider", $.mobile.widget, { }); } + else if (trackTheme != rangeTheme) { + slider.wrapInner( "
" ); + } label.addClass( "ui-slider" ); @@ -265,6 +273,8 @@ $.widget( "mobile.slider", $.mobile.widget, { if ( percent > 60 && cType === "select" ) { // TODO: Dead path? } + + this.slider.find('div.ui-slider-range-background').css('width', percent + "%"); this.handle.css( "left", percent + "%" ); this.handle.attr( { "aria-valuenow": cType === "input" ? newval : control.find( "option" ).eq( newval ).attr( "value" ), diff --git a/tests/unit/slider/index.html b/tests/unit/slider/index.html old mode 100644 new mode 100755 index b359353be20..714af450006 --- a/tests/unit/slider/index.html +++ b/tests/unit/slider/index.html @@ -47,6 +47,10 @@

+
+ +
+