diff --git a/example/pages/slider/index.wxml b/example/pages/slider/index.wxml
index 40badd53..94dd2207 100644
--- a/example/pages/slider/index.wxml
+++ b/example/pages/slider/index.wxml
@@ -9,9 +9,8 @@
diff --git a/packages/slider/README.md b/packages/slider/README.md
index a2c15a2d..2921508c 100644
--- a/packages/slider/README.md
+++ b/packages/slider/README.md
@@ -29,7 +29,7 @@ Page({
### 指定选择范围
```html
-
+
```
### 禁用
diff --git a/packages/slider/index.ts b/packages/slider/index.ts
index 53138e56..8a27e924 100644
--- a/packages/slider/index.ts
+++ b/packages/slider/index.ts
@@ -70,19 +70,22 @@ VantComponent({
onClick(event: Weapp.TouchEvent) {
if (this.data.disabled) return;
+ const { min } = this.data;
+
this.getRect('.van-slider').then((rect: WechatMiniprogram.BoundingClientRectCallbackResult) => {
- const value = (event.detail.x - rect.left) / rect.width * 100;
+ const value = (event.detail.x - rect.left) / rect.width * this.getRange() + min;
this.updateValue(value, true);
});
},
updateValue(value: number, end: boolean, drag: boolean) {
value = this.format(value);
- const { barHeight } = this.data;
+ const { barHeight, min } = this.data;
+ const width = `${((value - min) * 100) / this.getRange()}%`;
this.set({
value,
- barStyle: `width: ${value}%; height: ${addUnit(barHeight)};`
+ barStyle: `width: ${width}; height: ${addUnit(barHeight)};`
});
if (drag) {
@@ -94,6 +97,11 @@ VantComponent({
}
},
+ getRange() {
+ const { max, min } = this.data;
+ return max - min;
+ },
+
format(value: number) {
const { max, min, step } = this.data;
return Math.round(Math.max(min, Math.min(value, max)) / step) * step;