From fb3623a1da832a43fdccb7402ecfd206248639c9 Mon Sep 17 00:00:00 2001 From: Robert Messerle Date: Wed, 4 Feb 2015 08:46:37 -0800 Subject: [PATCH] fix(slider): updates positioning method to prevent overflow issues Create separate models for demos of themeing classes with sliders. Closes #1343 Closes #1431 Closes #1391 --- .../slider/demoBasicUsage/index.html | 6 +-- .../slider/demoBasicUsage/script.js | 2 +- src/components/slider/slider.js | 37 ++++++++++--------- src/components/slider/slider.scss | 12 ++++-- 4 files changed, 32 insertions(+), 25 deletions(-) diff --git a/src/components/slider/demoBasicUsage/index.html b/src/components/slider/demoBasicUsage/index.html index 02f1a2253a4..fa069ebbd7e 100644 --- a/src/components/slider/demoBasicUsage/index.html +++ b/src/components/slider/demoBasicUsage/index.html @@ -44,21 +44,21 @@

Rating: {{rating}}/5 - demo of theming classes

default
- +
md-warn
- +
md-primary
- +
diff --git a/src/components/slider/demoBasicUsage/script.js b/src/components/slider/demoBasicUsage/script.js index 3eaa907e659..a6be5f86ba0 100644 --- a/src/components/slider/demoBasicUsage/script.js +++ b/src/components/slider/demoBasicUsage/script.js @@ -9,7 +9,7 @@ angular.module('sliderDemo1', ['ngMaterial']) blue: Math.floor(Math.random() * 255) }; - $scope.rating = 3; + $scope.rating1 = $scope.rating2 = $scope.rating3 = 3; $scope.disabled1 = 0; $scope.disabled2 = 70; diff --git a/src/components/slider/slider.js b/src/components/slider/slider.js index 3156cab24f9..f11a9bf5583 100644 --- a/src/components/slider/slider.js +++ b/src/components/slider/slider.js @@ -53,20 +53,22 @@ function SliderDirective($$rAF, $window, $mdAria, $mdUtil, $mdConstant, $mdThemi scope: {}, require: '?ngModel', template: - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '
' + - '' + - '
' + - '
' + - '
', + '
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ +
\ + \ +
\ +
\ +
\ +
', compile: compile }; @@ -100,7 +102,7 @@ function SliderDirective($$rAF, $window, $mdAria, $mdUtil, $mdConstant, $mdThemi }; var isDisabledParsed = attr.ngDisabled && $parse(attr.ngDisabled); - var isDisabledGetter = isDisabledParsed ? + var isDisabledGetter = isDisabledParsed ? function() { return isDisabledParsed(scope.$parent); } : angular.noop; var thumb = angular.element(element[0].querySelector('.md-thumb')); @@ -280,8 +282,8 @@ function SliderDirective($$rAF, $window, $mdAria, $mdUtil, $mdConstant, $mdThemi function setSliderPercent(percent) { activeTrack.css('width', (percent * 100) + '%'); thumbContainer.css( - $mdConstant.CSS.TRANSFORM, - 'translate3d(' + (percent * 100) + '%,0,0)' + 'left', + (percent * 100) + '%' ); element.toggleClass('md-min', percent === 0); } @@ -316,6 +318,7 @@ function SliderDirective($$rAF, $window, $mdAria, $mdUtil, $mdConstant, $mdThemi var closestVal = minMaxValidator( stepValidator(exactVal) ); scope.$apply(function() { setModelValue(closestVal); + ngModelRender(); }); } function onDragStart(ev) { diff --git a/src/components/slider/slider.scss b/src/components/slider/slider.scss index 96f80e8c2fa..ded91e49f46 100644 --- a/src/components/slider/slider.scss +++ b/src/components/slider/slider.scss @@ -52,6 +52,11 @@ md-slider { display: block; margin-left: 4px; margin-right: 4px; + padding: 0; + + .md-slider-wrapper { + position: relative; + } /** * Track @@ -84,10 +89,9 @@ md-slider { .md-thumb-container { position: absolute; left: 0; - top: 0; - right: 0; - transform: translate3d(0,0,0); - transition: transform 0.1s linear; + top: 50%; + transform: translate3d(-50%,-50%,0); + transition: left 0.1s linear; } .md-thumb { z-index: 1;