drag list view and table view component for react
npm install react-drag-listviewReact drag list component.
[![NPM version][npm-image]][npm-url]
[![build status][travis-image]][travis-url]
[![npm download][download-image]][download-url]
[npm-image]: http://img.shields.io/npm/v/react-drag-listview.svg?style=flat-square
[npm-url]: http://npmjs.org/package/react-drag-listview
[travis-image]: https://img.shields.io/travis/raisezhang/react-drag-listview.svg?style=flat-square
[travis-url]: https://travis-ci.org/raisezhang/react-drag-listview
[download-image]: https://img.shields.io/npm/dm/react-drag-listview.svg?style=flat-square
[download-url]: https://npmjs.org/package/react-drag-listview

* react-drag-listview already supports mobile (touch) devices, which can be easily implemented based on the dragdroptouch polyfill
* Need to manually add polyfill dragdroptouch to your website. e.g.
``html`
* Example: Drag on mobile devices
* ###### Drag Rows
* Simple dragging demo
* Dragging Ant-Design table
* Dragging Ant-Design table width expanded rows
* Dragging Ant-Design transfer items
* Dragging Ant-Design Nested List Items
* ###### Drag Columns
* Simple dragging columns demo
* Dragging Ant-Design table columns
`bash`
npm install
npm start
`javascript
const ReactDragListView = require('react-drag-listview');
class Demo extends React.Component {
constructor(props) {
super(props);
const data = [];
for (let i = 1, len = 7; i < len; i++) {
data.push({
title: rows${i}
});
}
this.state = {
data
};
}
render() {
const that = this;
const dragProps = {
onDragEnd(fromIndex, toIndex) {
const data = [...that.state.data];
const item = data.splice(fromIndex, 1)[0];
data.splice(toIndex, 0, item);
that.setState({ data });
},
nodeSelector: 'li',
handleSelector: 'a'
};
return (
{this.state.data.map((item, index) => (
{item.title}
Drag
))}
);
}
}
``
| Name | Type | Default | Description |
|---|---|---|---|
| onDragEnd | Function(fromIndex, toIndex) | on drag end callback, required | |
| nodeSelector | String | tr | get drag item cssQuery |
| handleSelector | String | nodeSelector | get drag handle cssQuery |
| ignoreSelector | String | ignore node list | |
| enableScroll | Boolean | true | whether use auto scroll for dragging |
| scrollSpeed | Number | 10 | scroll speed |
| lineClassName | String | get dragLine's className, css properties must be use !important |
react-drag-listview is released under the MIT license.