@@ -12,6 +12,7 @@ $md-slider-thumb-size: 20px !default;
12
12
13
13
$md-slider-thumb-default-scale : 0.7 !default ;
14
14
$md-slider-thumb-focus-scale : 1 !default ;
15
+ $md-slider-thumb-disabled-scale : 0.5 !default ;
15
16
16
17
$md-slider-thumb-arrow-gap : 12px !default ;
17
18
@@ -30,16 +31,29 @@ md-slider {
30
31
vertical-align : middle ;
31
32
}
32
33
33
- .md-slider-track {
34
+ .md-slider-wrapper {
34
35
position : absolute ;
35
36
}
36
37
38
+ .md-slider-track-wrapper {
39
+ position : absolute ;
40
+ top : 0 ;
41
+ left : 0 ;
42
+ overflow : hidden ;
43
+ }
44
+
37
45
.md-slider-track-fill {
38
46
position : absolute ;
39
47
transform-origin : 0 0 ;
40
48
transition : transform $swift-ease-out-duration $swift-ease-out-timing-function ;
41
49
}
42
50
51
+ .md-slider-track-background {
52
+ position : absolute ;
53
+ transform-origin : 100% 100% ;
54
+ transition : transform $swift-ease-out-duration $swift-ease-out-timing-function ;
55
+ }
56
+
43
57
.md-slider-ticks-container {
44
58
position : absolute ;
45
59
left : 0 ;
@@ -93,6 +107,7 @@ md-slider {
93
107
// Slider sliding state.
94
108
.md-slider-sliding {
95
109
.md-slider-track-fill ,
110
+ .md-slider-track-background ,
96
111
.md-slider-thumb-container {
97
112
// Must use `transition-duration: 0ms` to disable animation rather than `transition: none`.
98
113
// On Mobile Safari `transition: none` causes the slider thumb to appear stuck.
@@ -103,7 +118,7 @@ md-slider {
103
118
104
119
// Slider with ticks.
105
120
.md-slider-has-ticks {
106
- .md-slider-track ::after {
121
+ .md-slider-wrapper ::after {
107
122
content : ' ' ;
108
123
position : absolute ;
109
124
border : 0 solid $md-slider-tick-color ;
@@ -113,7 +128,7 @@ md-slider {
113
128
114
129
& .md-slider-active ,
115
130
& :hover {
116
- .md-slider-track ::after {
131
+ .md-slider-wrapper ::after {
117
132
opacity : 1 ;
118
133
}
119
134
@@ -137,6 +152,10 @@ md-slider {
137
152
.md-slider-track-fill {
138
153
transform-origin : 100% 100% ;
139
154
}
155
+
156
+ .md-slider-track-background {
157
+ transform-origin : 0 0 ;
158
+ }
140
159
}
141
160
142
161
@@ -160,22 +179,40 @@ md-slider {
160
179
}
161
180
162
181
182
+ // Disabled slider.
183
+ .md-slider-disabled {
184
+ .md-slider-thumb {
185
+ transform : scale ($md-slider-thumb-disabled-scale );
186
+ }
187
+
188
+ .md-slider-thumb-label {
189
+ display : none ;
190
+ }
191
+ }
192
+
193
+
163
194
// Horizontal slider.
164
195
.md-slider-horizontal {
165
196
height : $md-slider-thickness ;
166
197
min-width : $md-slider-min-size ;
167
198
168
- .md-slider-track {
199
+ .md-slider-wrapper {
169
200
height : $md-slider-track-thickness ;
170
201
top : ($md-slider-thickness - $md-slider-track-thickness ) / 2 ;
171
202
left : $md-slider-padding ;
172
203
right : $md-slider-padding ;
173
204
}
174
205
175
- .md-slider-track ::after {
206
+ .md-slider-wrapper ::after {
176
207
height : $md-slider-track-thickness ;
177
208
border-left-width : $md-slider-tick-size ;
178
209
right : 0 ;
210
+ top : 0 ;
211
+ }
212
+
213
+ .md-slider-track-wrapper {
214
+ height : $md-slider-track-thickness ;
215
+ width : 100% ;
179
216
}
180
217
181
218
.md-slider-track-fill {
@@ -184,6 +221,12 @@ md-slider {
184
221
transform : scaleX (0 );
185
222
}
186
223
224
+ .md-slider-track-background {
225
+ height : $md-slider-track-thickness ;
226
+ width : 100% ;
227
+ transform : scaleX (1 );
228
+ }
229
+
187
230
.md-slider-ticks-container {
188
231
height : $md-slider-track-thickness ;
189
232
width : 100% ;
@@ -230,17 +273,23 @@ md-slider {
230
273
width : $md-slider-thickness ;
231
274
min-height : $md-slider-min-size ;
232
275
233
- .md-slider-track {
276
+ .md-slider-wrapper {
234
277
width : $md-slider-track-thickness ;
235
278
top : $md-slider-padding ;
236
279
bottom : $md-slider-padding ;
237
280
left : ($md-slider-thickness - $md-slider-track-thickness ) / 2 ;
238
281
}
239
282
240
- .md-slider-track ::after {
283
+ .md-slider-wrapper ::after {
241
284
width : $md-slider-track-thickness ;
242
285
border-top-width : $md-slider-tick-size ;
243
286
bottom : 0 ;
287
+ left : 0 ;
288
+ }
289
+
290
+ .md-slider-track-wrapper {
291
+ height : 100% ;
292
+ width : $md-slider-track-thickness ;
244
293
}
245
294
246
295
.md-slider-track-fill {
@@ -249,6 +298,12 @@ md-slider {
249
298
transform : scaleY (0 );
250
299
}
251
300
301
+ .md-slider-track-background {
302
+ height : 100% ;
303
+ width : $md-slider-track-thickness ;
304
+ transform : scaleY (1 );
305
+ }
306
+
252
307
.md-slider-ticks-container {
253
308
width : $md-slider-track-thickness ;
254
309
height : 100% ;
@@ -288,7 +343,7 @@ md-slider {
288
343
289
344
// Slider in RTL languages.
290
345
[dir = ' rtl' ] {
291
- .md-slider-track ::after {
346
+ .md-slider-wrapper ::after {
292
347
left : 0 ;
293
348
right : auto ;
294
349
}
@@ -298,10 +353,18 @@ md-slider {
298
353
transform-origin : 100% 100% ;
299
354
}
300
355
356
+ .md-slider-track-background {
357
+ transform-origin : 0 0 ;
358
+ }
359
+
301
360
& .md-slider-axis-inverted {
302
361
.md-slider-track-fill {
303
362
transform-origin : 0 0 ;
304
363
}
364
+
365
+ .md-slider-track-background {
366
+ transform-origin : 100% 100% ;
367
+ }
305
368
}
306
369
}
307
370
}
0 commit comments