整合營銷服務商

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

          免費咨詢熱線:

          輕松實現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!~

          計思路: 首先,利用requests模塊請求html頁面,獲取HTML頁面內容;其次,利用bs4模塊中BeautifulSoup對象,解析HTML得到想要的信息; 再次利用pandas進行數據處理

          安裝所依賴模塊:

          pip install requests(發get請求)

          pip install bs4(解析網頁,提取指定數據的)

          pip install pandas(數據處理)

          pip install lxml(HTML/XML的解析器)

          pip install openpyxl(excel操作)

          圖1

          我們以抓取國家重點學科學校排名為例,數據源為http://www.chinadegrees.cn/xwyyjsjyxx/xwbl/zdjs/zdxk/zdxkmd/lsx/266612.shtml

          具體思路

          第一步:通過requests獲取頁面html內容

          第二步:利用bs4模塊中BeautifulSoup對象,解析HTML,獲取table標簽的內容,解析為純文本

          BeautifulSoup對象具體使用見https://blog.csdn.net/qq_21933615/article/details/81171951

          第三步:利用pands數據處理及結果輸出結果到excel


          打開excel,大功告成

          .表格的制作

          1、表格元素–<table>

          表格中的行–<tr>

          表格中的列–<td>

          表格中的表頭–【居中/加粗】

          table標記的邊框–border

          table標記的寬度–width

          table標記的高度–height

          table標記的水平對齊方式–align

          table標記的表格背景色–bgcolor

          table標記的表格邊框色–bordercolor

          table標記的表格中的內容與邊框之間的距離–cellpadding

          table標記的表格中的邊框與邊框之間的距離–cellspacing【默認是1px】

          tr標記的align屬性–設置當前行的水平對齊方式

          tr標記的bgcolor屬性–設置當前行的背景色

          tr標記的valign屬性–設置當前行的垂直對齊方式【top/middle/bottom】

          td標記的align屬性–設置當前列的水平對齊方式

          td標記的bgcolor屬性–設置當前列的背景色

          td標記的valign屬性–設置當前列的垂直對齊方式【top/middle/bottom】

          合并單元格

          水平方向合并單元格–跨列—colspan

          • 垂直方向合并單元格–跨行—rowspan
          • 刪除多余的單元格*

          以下是計算器的控制面板代碼

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>計算器的控制面板</title>

          </head>

          <body>

          <table border="1" cellspacing="10px" cellpadding="20px"

          align="center" bgcolor="aliceblue">

          <tr><td colspan="5" height="40px" align="right"><font size="7"><b>0</b></font></td></tr>

          <tr align="center">

          <td>MC</td>

          <td>MR</td>

          <td>MS</td>

          <td>M+</td>

          <td>M-</td>

          </tr>

          <tr align="center">

          <td>&lt;-</td>

          <td>CE</td>

          <td>C</td>

          <td>+/-</td>

          <td>√</td>

          </tr>

          <tr align="center">

          <td>7</td>

          <td>8</td>

          <td>9</td>

          <td>/</td>

          <td>%</td>

          </tr>

          <tr align="center">

          <td>4</td>

          <td>5</td>

          <td>6</td>

          <td>*</td>

          <td>1/x</td>

          </tr>

          <tr align="center">

          <td>1</td>

          <td>2</td>

          <td>3</td>

          <td>-</td>

          <td rowspan="2" bgcolor="yellow">=

          </td>

          </tr>

          <tr align="center">

          <td colspan="2">0</td>

          <td>.</td>

          <td>+</td>

          </tr>

          </table>

          </body>

          </html>

          看成品:

          2. 列表元素

          2.1 有序列表

          ol—有序列表

          li—列表中的每一項【條目】

          默認的標志是有順序的數字

          我們可以通過ol的type屬性來修改標志

          1–有順序的數字

          a–有順序的小寫字母

          A–有順序的大寫字母

          i–有順序的小寫羅馬數字

          I–有順序的大寫羅馬數字

          start屬性設置書順序的開始值

          2.2 無序列表

          ul—無序列表

          li—列表中的每一項【條目】

          默認的標志是實心點

          我們可以通過ul的type屬性來修改標志

          circle–圓形【。】

          disc----實心點[默認]

          square–正方形

          none–沒有標志

          2.3 自定義列表

          dl—自定義列表

          dt—自定義列表的頭

          dd—子項目

          以下是有序,無序,和自定義列表

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title>列表</title>

          </head>

          <body>

          <ul type="none">

          <li>無序列表</li>

          <li>無序列表</li>

          <li>無序列表</li>

          </ul>

          <ol type="A">

          <li>有序列表</li>

          <li>有序列表</li>

          <li>有序列表</li>

          </ol>

          <dl>

          <dt>自定義列表</dt>

          <dt>自定義列表</dt>

          <dt>自定義列表</dt>

          </dl>

          </body>

          </html>

          3. 表單<form>

          主要負責采集信息的,可以將采集的信息提交。

          form的屬性

          action—指定表單數據的后端處理程序

          method----指定表單數據的提交方式【get[默認]/post】

          get提交數據會將被處理的數據跟隨在請求地址之后

          被提交的數據255個字符

          https://www.baidu.com/s?&wd=html

          post提交數據會將被處理的數據封裝到http協議的頭

          https://www.baidu.com/s

          被提交的數據沒有限制

          通常情況下提交文件只能用post

          enctype屬性規定在將表單數據發送到服務器之前如何對其進行編碼。

          <!DOCTYPE html>

          <html>

          <head>

          <meta charset="utf-8">

          <title></title>

          </head>

          <body>

          <table border="1" align="center" cellpadding="20px" cellspacing="0">

          <tr>

          <td>application/x-www-form-urlencoded</td>

          <td>在發送前對所有字符進行編碼(默認)。</td>

          </tr>

          <tr>

          <td>multipart/form-data</td>

          <td>不對字符編碼。當使用有文件上傳控件的表單時,該值是必需的。

          </td>

          </tr>

          <tr>

          <td>text/plain</td>

          <td>將空格轉換為 "+" 符號,但不編碼特殊字符。</td>

          </tr>

          </table>

          </body>

          </html>

          表單元素

          input 文本框/密碼框/單選按鈕/復選框…

          seletc 下拉列表

          textarea 文本域—富文本編輯器


          主站蜘蛛池模板: 亚洲AV无码一区二区三区在线观看| 亚洲天堂一区二区三区四区| 无码人妻一区二区三区免费| 无码视频一区二区三区在线观看 | 99精品国产一区二区三区不卡| 人妻内射一区二区在线视频| 国产午夜精品一区二区三区不卡 | 日本一区二区三区在线观看视频 | 久久久无码一区二区三区| 日韩精品无码一区二区视频| 韩国一区二区三区| 一区二区三区免费看| 成人丝袜激情一区二区| 在线观看午夜亚洲一区| 欧美激情一区二区三区成人| 国产在线精品一区二区不卡麻豆| 精品少妇ay一区二区三区| 手机看片福利一区二区三区| 成人免费一区二区无码视频| 国偷自产av一区二区三区| 中文字幕在线一区| 亚洲毛片不卡av在线播放一区| 国产对白精品刺激一区二区 | 国产成人精品一区二区三在线观看| 精品中文字幕一区在线| 福利视频一区二区牛牛| 亚洲一区二区视频在线观看| 精品国产香蕉伊思人在线在线亚洲一区二区 | 女人和拘做受全程看视频日本综合a一区二区视频 | 国产一区二区三区在线观看精品| 亚洲国产成人久久综合一区| 亚洲一区二区三区久久| 亚洲国产国产综合一区首页| 日韩人妻一区二区三区蜜桃视频| 性无码免费一区二区三区在线 | 久久精品无码一区二区三区免费| 欧美日韩精品一区二区在线视频| 亚洲Av无码国产一区二区| 在线电影一区二区| 亚洲色精品vr一区二区三区| 老熟妇仑乱视频一区二区|