table-dragger

Turn your old table to drag-and-drop table with columns and rows sorting like magic!

Github星跟蹤圖

table-dragger

Build Status
Coverage Status
Downloads
Npm version

Finally, you are able to drag and sort your table as you want.

demo.gif

Demo

Try out the demo!

Inspiration

Table-dragger is a minimalist plain Javascript library for building reorderable drag-and-drop table.

Features

  • Super easy to set up
  • Able to sort columns or rows at the same time
  • Smooth animation when sort
  • No bloated dependencies
  • Touch events

Install

You can get it on npm.

npm install table-dragger --save

or

<script src="../node_modules/table-dragger/dist/table-dragger.min.js"></script>

If you want to try the unstable version under developing

npm install table-dragger@next --save

Usage

import tableDragger from 'table-dragger'

tableDragger(el, options?)
<table id="table">
  <thead>
  <tr>
    <th class='handle'>header1</th>
    <th class='handle'>header2</th>
  </tr>
  </thead>
  <tbody>
  <tr>
    <td>conten1</td>
    <td>conten2</td>
  </tr>
  </tbody>
</table>
var el = document.getElementById('table');
var dragger = tableDragger(el, {
  mode: 'row',
  dragHandler: '.handle',
  onlyBody: true,
});
dragger.on('drop',function(from, to){
  console(from);
  console(to);
});

And you could also not set any options, which defaults to drag with the default options.

The options are detailed below.

options.mode

  • Setting mode to column, user drag and sort columns of table
  • Setting mode to row, user drag and sort rows of table
  • Setting mode to free, user drag rows or columns, depending on the direction of the mouse movement after tapping. Notice you have to specify dragHandler in free mode.

options.dragHandler

  • dragHandler is drag handle selector within table
  • By default, when in column mode, dragHandler is the first row of table; in row mode, the first column.

options.onlyBody

  • Setting onlyBody to true in row mode, user can only lift rows in tbody.

API

The tableDragger method returns a tiny object with a concise API. We'll refer to the API returned by tableDragger as dragger

dragger.on (Events)

The dragger is an event emitter. The following events can be tracked using dragger.on(type, listener):

Event Name, Listener Arguments, Event Description
-----------, ----------------------------------, -------------------------------------------------------------------------------------
drag, el, mode, el is the origin table, mode is column or row, shows the mode user sort
drop, oldIndex, newIndex, el, mode, oldIndex is the index before sorting. newIndex is the index after sorting
shadowMove, oldIndex, newIndex, el, mode, trigger when column(row) is being lifted and moving into other column(row) place.
out, el, mode, column(row) was dragged out of el, or dropped

dragger.dragging

This property will be true whenever an element is being dragged.

License

MIT

主要指標

概覽
名稱與所有者sindu12jun/table-dragger
主編程語言JavaScript
編程語言JavaScript (語言數: 3)
平台
許可證MIT License
所有者活动
創建於2016-11-23 02:32:20
推送於2024-03-05 14:44:50
最后一次提交2024-03-05 22:44:40
發布數1
最新版本名稱v1.0.2 (發布於 2017-09-14 23:57:00)
第一版名稱v1.0.2 (發布於 2017-09-14 23:57:00)
用户参与
星數752
關注者數34
派生數130
提交數96
已啟用問題?
問題數40
打開的問題數22
拉請求數6
打開的拉請求數3
關閉的拉請求數2
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?