Slider: fix drag bug

pull/1486/head
kingwl 2016-11-30 16:58:53 +08:00 committed by 杨奕
parent c80db9ca8a
commit 932d6bdb6f
1 changed files with 18 additions and 14 deletions

View File

@ -136,20 +136,24 @@
}, },
setPosition(newPos) { setPosition(newPos) {
if (newPos >= 0 && (newPos <= 100)) { if (newPos < 0) {
const lengthPerStep = 100 / ((this.max - this.min) / this.step); newPos = 0;
const steps = Math.round(newPos / lengthPerStep); } else if (newPos > 100) {
let value = steps * lengthPerStep * (this.max - this.min) * 0.01 + this.min; newPos = 100;
if (this.precision) { }
value = parseFloat(value.toFixed(this.precision));
} const lengthPerStep = 100 / ((this.max - this.min) / this.step);
this.$emit('input', value); const steps = Math.round(newPos / lengthPerStep);
this.currentPosition = (this.value - this.min) / (this.max - this.min) * 100 + '%'; let value = steps * lengthPerStep * (this.max - this.min) * 0.01 + this.min;
if (!this.dragging) { if (this.precision) {
if (this.value !== this.oldValue) { value = parseFloat(value.toFixed(this.precision));
this.$emit('change', this.value); }
this.oldValue = this.value; this.$emit('input', value);
} this.currentPosition = (this.value - this.min) / (this.max - this.min) * 100 + '%';
if (!this.dragging) {
if (this.value !== this.oldValue) {
this.$emit('change', this.value);
this.oldValue = this.value;
} }
} }
}, },