Utility for resizable split views.
- Fast & Simple to use.
- Lightweight <1kb.
- Zero dependencies.
- No events listeners are attached to Window.
- Compatible: Firefox - Chrome - Safari - Opera - Android - (FlexBox is not supported in IE).
$ npm i split-views
# or
$ yarn add split-views
import SplitViews from 'split-views';
Or include it via jsDelivr CDN (UMD):
<script src="https://cdn.jsdelivr.net/npm/split-views/build/index.min.js"></script>
<!-- Or via unpkg -->
<script src="https://unpkg.com/split-views"></script>
<!-- Access via global object : window.SplitViews -->
- SplitViews(options: Object): Object
Options | Type | Default | Description |
---|---|---|---|
parent |
HTMLElement or String |
'.split-view' |
Parent element. |
sizes |
Array<Number> |
[] |
Initial sizes of each element in %. |
minSize |
Number |
0 |
Minimum size. |
gutterSize |
Number |
5 |
Gutter size (seperator). |
direction |
String |
'horizontal' |
Resize direction: horizontal or vertical. |
onDragEnd |
Method |
null |
Callback with new sizes in %. |
const options = {
parent: '#parent-id', // or HTMLElement
direction: 'horizontal',
gutterSize: 5,
minSize: 20,
sizes: [25, 50, 25],
onDragEnd: (newSizes) => {
console.log(newSizes);
}
};
const sp = SplitViews(options)
// detroy method: remove "touchstart" and "mousedown" events
// the others events are removed by default
sp.detroy()
- React: React component wrapper
- Tested on Chrome 67, Firefox 67, Edge 70, Opera 67, Safari 11, Android (>= 4).
- SplitViews is flex-based.
- All pull requests are welcome, feel free.
MIT