slider组件 step为小数时回不到100的bug
This commit is contained in:
parent
12739c33fa
commit
3b71312aac
1 changed files with 14 additions and 4 deletions
|
@ -327,11 +327,10 @@
|
||||||
if (type === 'min') newPos = this.checkLimits([newPos, this.maxPosition])[0];
|
if (type === 'min') newPos = this.checkLimits([newPos, this.maxPosition])[0];
|
||||||
else newPos = this.checkLimits([this.minPosition, newPos])[1];
|
else newPos = this.checkLimits([this.minPosition, newPos])[1];
|
||||||
|
|
||||||
const modulus = newPos % this.step;
|
const modulus = this.handleDecimal(newPos,this.step)
|
||||||
const value = this.currentValue;
|
const value = this.currentValue;
|
||||||
value[index] = newPos - modulus;
|
value[index] = newPos - modulus;
|
||||||
this.currentValue = [...value];
|
this.currentValue = [...value];
|
||||||
|
|
||||||
if (!this.dragging) {
|
if (!this.dragging) {
|
||||||
if (this.currentValue[index] !== this.oldValue[index]) {
|
if (this.currentValue[index] !== this.oldValue[index]) {
|
||||||
this.emitChange();
|
this.emitChange();
|
||||||
|
@ -339,7 +338,18 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
handleDecimal(pos,step){
|
||||||
|
if(step<1){
|
||||||
|
let sl = step.toString(),
|
||||||
|
multiple = 1,
|
||||||
|
m = 0;
|
||||||
|
try {
|
||||||
|
m += sl.split('.')[1].length;
|
||||||
|
} catch (e) {}
|
||||||
|
multiple = Math.pow(10,m);
|
||||||
|
return (pos * multiple) % (step * multiple) / multiple;
|
||||||
|
}else return pos % step;
|
||||||
|
},
|
||||||
emitChange(){
|
emitChange(){
|
||||||
const value = this.range ? this.exportValue : this.exportValue[0];
|
const value = this.range ? this.exportValue : this.exportValue[0];
|
||||||
this.$emit('on-change', value);
|
this.$emit('on-change', value);
|
||||||
|
|
Loading…
Add table
Reference in a new issue