Commit 6337de26b479b46bc0f03db7335f3e7b5a0f2b41
1 parent
df0d7bd9
fix Slider bug, close #5183
Showing
1 changed file
with
12 additions
and
4 deletions
Show diff stats
src/components/slider/slider.vue
@@ -85,6 +85,7 @@ | @@ -85,6 +85,7 @@ | ||
85 | import { getStyle, oneOf } from '../../utils/assist'; | 85 | import { getStyle, oneOf } from '../../utils/assist'; |
86 | import { on, off } from '../../utils/dom'; | 86 | import { on, off } from '../../utils/dom'; |
87 | import Emitter from '../../mixins/emitter'; | 87 | import Emitter from '../../mixins/emitter'; |
88 | + import elementResizeDetectorMaker from 'element-resize-detector'; | ||
88 | 89 | ||
89 | const prefixCls = 'ivu-slider'; | 90 | const prefixCls = 'ivu-slider'; |
90 | 91 | ||
@@ -164,6 +165,7 @@ | @@ -164,6 +165,7 @@ | ||
164 | min: 0, | 165 | min: 0, |
165 | max: 1, | 166 | max: 1, |
166 | }, | 167 | }, |
168 | + sliderWidth: 0 | ||
167 | }; | 169 | }; |
168 | }, | 170 | }, |
169 | watch: { | 171 | watch: { |
@@ -246,9 +248,6 @@ | @@ -246,9 +248,6 @@ | ||
246 | } | 248 | } |
247 | return result; | 249 | return result; |
248 | }, | 250 | }, |
249 | - sliderWidth () { | ||
250 | - return parseInt(getStyle(this.$refs.slider, 'width'), 10); | ||
251 | - }, | ||
252 | tipDisabled () { | 251 | tipDisabled () { |
253 | return this.tipFormat(this.currentValue[0]) === null || this.showTip === 'never'; | 252 | return this.tipFormat(this.currentValue[0]) === null || this.showTip === 'never'; |
254 | }, | 253 | }, |
@@ -403,7 +402,10 @@ | @@ -403,7 +402,10 @@ | ||
403 | 402 | ||
404 | handleBlur (type) { | 403 | handleBlur (type) { |
405 | this.$refs[`${type}Tooltip`].handleClosePopper(); | 404 | this.$refs[`${type}Tooltip`].handleClosePopper(); |
406 | - } | 405 | + }, |
406 | + handleSetSliderWidth () { | ||
407 | + this.sliderWidth = parseInt(getStyle(this.$refs.slider, 'width'), 10); | ||
408 | + }, | ||
407 | }, | 409 | }, |
408 | mounted () { | 410 | mounted () { |
409 | // #2852 | 411 | // #2852 |
@@ -421,6 +423,12 @@ | @@ -421,6 +423,12 @@ | ||
421 | }); | 423 | }); |
422 | } | 424 | } |
423 | }); | 425 | }); |
426 | + | ||
427 | + this.observer = elementResizeDetectorMaker(); | ||
428 | + this.observer.listenTo(this.$refs.slider, this.handleSetSliderWidth); | ||
429 | + }, | ||
430 | + beforeDestroy() { | ||
431 | + this.observer.removeListener(this.$refs.slider, this.handleSetSliderWidth); | ||
424 | } | 432 | } |
425 | }; | 433 | }; |
426 | </script> | 434 | </script> |