整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          輕松實現HTML表格拖拽和排序,實現復雜交互式數據表變得更簡單

          我們都知道普通的HTML自帶的功能相對有限,很多復雜的交互式場景,如果手動去寫功能的話會非常的復雜,而且可擴展性差,就拿HTML表格來說,對于初學者或者對于復雜的拖拽式交互編程不熟悉的話會很浪費時間,因此今天就介紹一個第三方的插件——Table-draagger,來輕松實現類似的功能。Table-draagger是用于構建可重排序的拖放表的極簡主義純Javascript庫!



          Github

          https://github.com/sindu12jun/table-dragger


          特征

          Table-draagger因為其以下幾個特征而讓拖拽和排序的實現變得如此簡單:

          • 非常容易配置
          • 能夠同時對列或行進行排序
          • 排序時動畫流暢
          • 沒有臃腫的依賴
          • 提供觸摸事件(意味著在觸摸設備可以實現一些你想要的功能)


          安裝使用

          • 安裝

          可以在npm上獲得它:

          npm install table-dragger --save
          

          或者引用壓縮的js文件

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

          或者嘗試開發中的不穩定版本

          npm install table-dragger@next --save
          

          • 快速入門

          請看以下代碼:

          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);
          });
          

          你可以在不設置任何參數的情況下使用默認的拖拽和排序方式,當然以下是你可以配置的選項:

          • options.mode

          1、將mode設置為column,用戶拖動和排序表的列

          2、將mode設置為row,用戶拖動并排序表的行

          3、設置mode為free,用戶根據點擊后鼠標移動的方向拖動行或列。注意,必須在自由模式下指定dragHandler。

          • options.dragHandler

          dragHandler是表中的拖動句柄選擇器默認情況下,在列模式下,dragHandler是表的第一行;在行模式下,則是第一列。

          • options.onlyBody

          在行模式下將onlyBody設置為true時,用戶只能在tbody中提升行。

          • API

          下面是返回對象的API


          tableDragger(document.querySelector('#event-table'), { mode: 'free', dragHandler: '.handle', onlyBody: true })
          .on('drag', () => {
          console.log('drag');
          })
          .on('drop', (from, to, el, mode) => {
          console.log(`drop ${el.nodeName} from ${from} ${mode} to ${to} ${mode}`);
          })
          .on('shadowMove', (from, to, el, mode) => {
          console.log(`move ${el.nodeName} from ${from} ${mode} to ${to} ${mode}`);
          })
          .on('out', (el, mode) => {
          console.log(`move out or drop ${el.nodeName} in mode ${mode}`);
          });
          


          總結

          Table-draagger為我們節省了很多手動封裝表格排序和拖拽功能的時間,當然目前很多第三方框架已經實現了類似的功能,這更適用于原生的html表格,你還可以通過一些手段記憶用戶拖拽,這只是其中一種思路,Enjoy it!~

          我們都知道普通的HTML自帶的功能相對有限,很多復雜的交互式場景,如果手動去寫功能的話會非常的復雜,而且可擴展性差,就拿HTML表格來說,對于初學者或者對于復雜的拖拽式交互編程不熟悉的話會很浪費時間,因此今天就介紹一個第三方的插件——Table-draagger,來輕松實現類似的功能。Table-draagger是用于構建可重排序的拖放表的極簡主義純Javascript庫!



          Github

          https://github.com/sindu12jun/table-dragger


          特征

          Table-draagger因為其以下幾個特征而讓拖拽和排序的實現變得如此簡單:

          • 非常容易配置
          • 能夠同時對列或行進行排序
          • 排序時動畫流暢
          • 沒有臃腫的依賴
          • 提供觸摸事件(意味著在觸摸設備可以實現一些你想要的功能)


          安裝使用

          • 安裝

          可以在npm上獲得它:

          npm install table-dragger --save
          

          或者引用壓縮的js文件

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

          或者嘗試開發中的不穩定版本

          npm install table-dragger@next --save
          

          • 快速入門

          請看以下代碼:

          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);
          });
          

          你可以在不設置任何參數的情況下使用默認的拖拽和排序方式,當然以下是你可以配置的選項:

          • options.mode

          1、將mode設置為column,用戶拖動和排序表的列

          2、將mode設置為row,用戶拖動并排序表的行

          3、設置mode為free,用戶根據點擊后鼠標移動的方向拖動行或列。注意,必須在自由模式下指定dragHandler。

          • options.dragHandler

          dragHandler是表中的拖動句柄選擇器默認情況下,在列模式下,dragHandler是表的第一行;在行模式下,則是第一列。

          • options.onlyBody

          在行模式下將onlyBody設置為true時,用戶只能在tbody中提升行。

          • API

          下面是返回對象的API


          tableDragger(document.querySelector('#event-table'), { mode: 'free', dragHandler: '.handle', onlyBody: true })
          .on('drag', () => {
          console.log('drag');
          })
          .on('drop', (from, to, el, mode) => {
          console.log(`drop ${el.nodeName} from ${from} ${mode} to ${to} ${mode}`);
          })
          .on('shadowMove', (from, to, el, mode) => {
          console.log(`move ${el.nodeName} from ${from} ${mode} to ${to} ${mode}`);
          })
          .on('out', (el, mode) => {
          console.log(`move out or drop ${el.nodeName} in mode ${mode}`);
          });
          


          總結

          Table-draagger為我們節省了很多手動封裝表格排序和拖拽功能的時間,當然目前很多第三方框架已經實現了類似的功能,這更適用于原生的html表格,你還可以通過一些手段記憶用戶拖拽,這只是其中一種思路,Enjoy it!~

          用HTML代碼速查表

          標記或參數定 義<A>連結標記<ADDRESS>地址標記(斜體效果)<AREA>連結區域標記(設定各連結區域)alink點擊連結時的樣式。例:alink="#FF0000"align水平方向擺放位置。例:align="center"alternate來回走動,例:behavior=alternatealt在連結中插入文字說明。例:alt="綠葉園"<B>字體加粗標記(產生字體加粗的效果)<BODY>正文標記(設計文件格式及內文所在)<BR>換行標記(令文字、圖片等顯示在下一行)<BIG>字體加大標記(令字體稍為加大)<BLINK>閃爍文字標記(令文字產生閃爍效果)<BGSOUND>背景聲音標記(于背景播放聲音或音樂)<BASE>連結基準標記(可將網頁中所有的相對路徑轉換成絕對路徑)<BASEFONT>基準字形標記(設定所有字的字形、大小、顏色)<BLOCKQUOTE>引述文字區塊、令文字在表格的上下左右留有一定的空間background背景墻紙。例:background=01.JPGbgcolor背景顏色。例:bgcolor="#ff0000"bgproperties固定背景墻紙。例:bgproperties="fixed"border邊框。例:border=10bordercolor邊框顏色。例:bordercolor="#000080"bordercolorlight邊框向光部分的顏色。例:bordercolorlight="#000000"bordercolordark邊框背光部分的顏色。例:bordercolordark="#ffffff"bottom置于底端。例:valign="bottom"behavior卷動方式。例:behavior=alternate_blank表示連結的目標地址在新建窗口中打開。例:target=_blank

          <CENTER>居中標記(令文字、圖片、表格等顯示于中間)<CAPTION>表格標題(做成一打通列以填入表格標題)<CODE>程式碼(字體稍為加寬如)<CITE>引述(斜體效果)colspan該單元格向右打通。例:colspan="5"color顏色。例:color="#00FF00"cellspacing單元格間距。例:cellspacing="5"cellpadding單元格襯距。例:cellpadding="10"

          <DIV>區域標記<DFN>述語定義標記(斜體效果)<DIR>目錄清單標記(清單項目將以圓點排列,如<UL>)<DL>定義清單標記(清單分兩層出現)<DT>定義條目標記(標示該項定義的標題)<DD>定義內容標記(標示定義內容)direction方向。例:direction=up<EM>強調標記(字體出現斜體效果)<EMBED>多媒體標記

          <MENU>選單清單標記(清單項目將以圓點排列,如<UL>)<META>開頭定義標記<MAP>影像地圖名稱標記(設定影像地圖名稱)<MARQUEE>走動標記middle居中。例:align="middle"marginwidth框架左右邊緣與框架內的文件保留的空間。例:marginwidth=0marginhight框架上下邊緣與框架內的文件保留的空間。例:marginheight=0

          <NOBR>不換行標記(強制文字不自動換行)<NOFRAMES>不支持框架標記(當舊式瀏覽器不支援框架時顯示提示)name參考點(錨點)。例:<a ></a>no否。例:scrolling=nonoshade平面顯示。例:<hr noshade>noresize鎖住框架窗口的大小

          <OL>順序清單標記(清單項目將以數字、字母順序排列)

          <P>段落標記(為字、畫、表格等之間留一空白行)<PRE>預設格式標記(令文件按照原始碼的排列方式顯示)_parent父窗口(連結的目標網頁在本窗口中打開)。例:target=_parentplaybutton在媒體播放面板中顯示播放按鈕pausecutton在媒體播放面板中顯示暫停按鈕

          <STRONG>加重語氣標記(產生字體加粗 Bold 的效果)<SMALL>字體縮細標記(令字體稍為縮細)<STRIKE>劃刪除線標記(為字體加一刪除線)<SAMP>范例標記(字體稍為加寬如)<SUB>下標字標記<SUP>上標字標記<STYLE>樣式表標記<SPAN>自訂標記(獨立使用或與樣式表同用)<SELECT>選擇標記(建立 pop-up 走動清單)<SCRIPT>引用腳本標記size大小。例:size="7"src來源。例:src="http://sheng999.blog.163.com/blog/logo.gif"_self相同窗口(在相同的框架中顯示連結的內容)。例:target="_self">starttime開始播放的時間。例:starttime="00:10"smallconsole顯示較小的面板。例:cstopbutton顯示停止按鈕。例:cscrolling滾動條。例:scrolling=noscroll走動。例:behavior="scroll"scrollamount走動的速度。例:scrollAmount=25scrolldelay走動的停頓時間。例:scrolldelay=1000slide逐格走動(幻燈式)。例:behavior="slide"

          <TITLE>網頁文件標題標記<TABLE>表格標記<TR>表格的行<TD>表格的列<TH>表格標頭(相等于<TD>,但其內之字體會變粗)<TT>打字字體(Courier字體,字母寬度相同)<TEXTAREA>文字區塊(提供文字方盒以輸入較大量文字)topmargin網頁的上邊距。例:topmargin=10top上方。例:valign="top"text整個網頁的文字顏色。例:text=#CE0063target超級連接打開窗口模式。例:target=_blank_top將連結的網頁顯示在沒有框架的窗口中。例:target=_toptype樣式。例:type="text/css"true是。例:loop="true"

          <U>下劃線標記(給文本加上底線)<UL>無序清單(清單項目將以圓點排列)

          <VAR>變數標記(斜體效果)valign擺放位置(垂直方向)。例:valign="top"vlink被訪問后超鏈接文字的樣式。例:vlink="#0000FF"vspace圖片上下的空間。例:vspace=20volume音量(設定音量大小)。例:volume="100"volumelever顯示音量調整鈕。例:c

          <WBR>建議換行標記(預設換行部位)width寬度、長度。例: width="540"


          主站蜘蛛池模板: 日本一区二区不卡视频| 国产区精品一区二区不卡中文| 国产精品美女一区二区| 亚洲.国产.欧美一区二区三区 | 麻豆精品人妻一区二区三区蜜桃 | 日韩在线视频一区| 国产一区二区三区免费视频| 精品视频一区二区三区| 日本一区午夜爱爱| 免费视频精品一区二区三区| 国产精品夜色一区二区三区| 国产在线步兵一区二区三区| 色老板在线视频一区二区| 日韩精品无码免费一区二区三区| 亚洲sm另类一区二区三区| 日本免费一区二区三区最新| 国产成人无码AV一区二区在线观看| 中文字幕无线码一区| 激情亚洲一区国产精品| 日本人真淫视频一区二区三区| 国产日韩一区二区三免费高清| 午夜福利无码一区二区| 国产午夜精品一区二区| 少妇激情av一区二区| 国产中文字幕一区| 亚洲性色精品一区二区在线| 国产精品福利一区二区| 立川理惠在线播放一区| 国产内射999视频一区| 亚洲色精品三区二区一区| 国产在线精品一区免费香蕉 | 91视频一区二区| 国产一区二区三区美女| 亚洲一区二区三区电影| 国产aⅴ精品一区二区三区久久 | 国产麻豆媒一区一区二区三区| 国产午夜精品一区理论片| 国产SUV精品一区二区四| 果冻传媒董小宛一区二区| 玩弄放荡人妻一区二区三区| 精品乱人伦一区二区三区|