From 855bcda7851c6a5c7575f5360bb8623ce2bacd07 Mon Sep 17 00:00:00 2001 From: simaQ Date: Mon, 13 Jul 2015 14:12:56 +0800 Subject: [PATCH] feat add isIncluded props closes #8 --- README.md | 6 ++++++ src/Slider.jsx | 20 +++++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7334a994e..8ce8f3b14 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,12 @@ React.render(, container); [] mark every step for the slider, it will ignore the `step` parameter if it has been defined + + isIncluded + boolean + true + if the value is true, it means a continuous value interval, otherwise, it is a independent value. + index number diff --git a/src/Slider.jsx b/src/Slider.jsx index 00c76df88..fb6888f77 100644 --- a/src/Slider.jsx +++ b/src/Slider.jsx @@ -28,6 +28,7 @@ var Slider = React.createClass({ value: React.PropTypes.number, index: React.PropTypes.number, marks: React.PropTypes.array, + isIncluded: React.PropTypes.bool, className: React.PropTypes.string, disabled: React.PropTypes.bool, onBeforeChange: React.PropTypes.func, @@ -42,6 +43,7 @@ var Slider = React.createClass({ step: 1, value: 0, marks: [], + isIncluded: true, className: 'rc-slider', disabled: false, index: 0 @@ -310,8 +312,12 @@ var Slider = React.createClass({ left: offset.toFixed(5) }; var className = prefixClsFn(prefixCls, 'dot'); - if (i <= this.getIndex() || (this._calcValue(offset) <= this.getValue())) { - className = prefixClsFn(prefixCls, 'dot', 'dot-active'); + if (props.isIncluded) { + if (i <= this.getIndex() || (this._calcValue(offset) <= this.getValue())) { + className = prefixClsFn(prefixCls, 'dot', 'dot-active'); + } + } else { + className = (i === this.getIndex()) ? prefixClsFn(prefixCls, 'dot', 'dot-active') : className; } elements[i] = ( @@ -345,8 +351,12 @@ var Slider = React.createClass({ var prefixCls = this.props.className; var className = prefixClsFn(prefixCls, 'mark-text'); - if (i <= this.getIndex()) { - className = prefixClsFn(prefixCls, 'mark-text', 'mark-text-active'); + if (this.props.isIncluded) { + if (i <= this.getIndex()) { + className = prefixClsFn(prefixCls, 'mark-text', 'mark-text-active'); + } + } else { + className = (i === this.getIndex()) ? prefixClsFn(prefixCls, 'mark-text', 'mark-text-active') : className; } return ( @@ -422,7 +432,7 @@ var Slider = React.createClass({ var value = state.value; var offset = this._calcOffset(value); - var track = this.renderTrack(offset); + var track = this.props.isIncluded ? this.renderTrack(offset) : null; var handles = this.renderHandle(offset); var steps = (props.step > 1 || props.marks.length > 0) ? this.renderSteps() : null; var sliderMarks = (props.marks.length > 0) ? this.renderMarks() : null;