Range Library
Category: FormThe Range module supports both single and dual slider selection with freeze functionality and ruler markers, providing a perfect replacement for native range components.

Preface
The range library is a foundational library used to output a range value and serves as the base for the oc-range
component.
This library supports the following features:
- Initialization with either input nodes or div nodes
- Support for increment/decrement via buttons
- Real-time display of sliding results
- Support for keyboard arrow key controls
- Display of ruler markers with two-level scales
- Secondary range constraints within min/max bounds
- Support for enable/disable functionality
- Bubble indicator display
- Customizable major scale text content
- Click-to-position on the track
- Dual-handle range value display
- Draggable range track for equal-value translation
- Click positioning via min/max bubbles and major scale text
- Customizable scale divisions including secondary scale divisions
- Support for both horizontal and vertical slider orientations
Basic Usage
Apply the oc-range
attribute to a div
or input
node to create a standard 0~100
range slider.
- Output
- HTML
You can also create range sliders using the id+new
pattern.
- Output
- HTML
- JS
-
-
-
new orca.Range('#demo')
Increment and Decrement
To display increment/decrement buttons, set the parameter button:true
or button.enable:true
.
- Output
- HTML
The button parameter is an object with the following properties:
- enable: Whether to enable (default: false)
- step: Step value (default: 1, same as the step parameter)
- decrease: HTML content for decrement button (default: minus icon)
- increase: HTML content for increment button (default: plus icon)
- Output
- HTML
Dual Sliders
To enable dual sliders, set the parameter multiple:true
.
- Output
- HTML
Range Constraints
To further constrain the range within the original min/max values, use the fence
property, which is an object with the following properties:
- enable: Whether to enable (default: false)
- min: Minimum value (default: same as min parameter)
- max: Maximum value (default: same as max parameter)
- Output
- HTML
Sizing
Set the size using the size
parameter, which supports three values: sm, md, and lg:
- sm: Height 32px (3.2rem), track 3px
- md: Height 40px (4.0rem), track 5px
- lg: Height 56px (5.6rem), track 14px
- Output
- HTML
Disabling
Set the parameter disabled:true
to disable the slider.
- Output
- HTML
Basic Configuration
Property | Type | Default | Description |
---|---|---|---|
name | string | '' | Hidden input name attribute |
step | number | 1 | Slider step value |
max | number | 100 | Maximum value |
min | number | 0 | Minimum value |
value | number/array | 0 | Initial value |
dir | 'h'/'v' | 'h' | Slider direction |
disabled | boolean | false | Whether disabled |
Display Configuration
Property | Type | Default | Description |
---|---|---|---|
size | 'sm'/'md'/'lg' | 'md' | Slider size |
full | boolean | false | Whether to span full width |
classes | string | '' | Additional CSS classes |
limitShow | boolean | true | Whether to show limit value bubbles |
tipShow | boolean | true | Whether to show slider bubble |
Multi-Slider Configuration
Property | Type | Default | Description |
---|---|---|---|
multiple | boolean | false | Whether to enable dual sliders |
locked | boolean | false | Whether to lock slider spacing |
separator | string | '~' | Input value separator |
hyphen | string | '~' | Bubble value connector |
Range Configuration
Property | Type | Default | Description |
---|---|---|---|
fence.enable | boolean | false | Whether to enable valid range |
fence.min | number | 0 | Valid range minimum |
fence.max | number | 100 | Valid range maximum |
Button Configuration
Property | Type | Default | Description |
---|---|---|---|
button.enable | boolean | false | Whether to enable increment/decrement buttons |
button.decrease | string | <i class="_icon-minus-o-f"></i> |
Decrease button HTML |
button.increase | string | <i class="_icon-plus-o-f"></i> |
Increase button HTML |
keyboard | boolean | false | Whether to support keyboard operation |
Ruler Configuration
Property | Type | Default | Description |
---|---|---|---|
ruler.enable | boolean | false | Whether to show ruler |
ruler.majorEqual | number | 4 | Major scale divisions |
ruler.minorEqual | number/'auto' | 'auto' | Minor scale divisions |
ruler.labels | array | [] | Major scale labels |
Result Display Configuration
Property | Type | Default | Description |
---|---|---|---|
result.enable | boolean | false | Whether to show result |
result.target | string/null | null | Result display container selector |
Callback Functions
Property | Type | Default | Description |
---|---|---|---|
onSet | function | null | Callback after setting new value |
onToStart | function | null | Callback when reaching minimum |
onToEnd | function | null | Callback when reaching maximum |
onEnabled | function | null | Callback after enabling |
onDisabled | function | null | Callback after disabling |
onRestored | function | null | Callback after restoring initial value |