新闻中心
html5表格怎么整体移动_HTML5表格拖拽排序实现
实现HTML5表格拖拽排序需设置tr的draggable属性并监听drag事件。首先为tr添加draggable="true",在dragstart时记录源行并设置数据,在dragover时阻止默认行为,在drop时交换行内容并重新绑定事件。示例代码包含完整的事件处理和样式高亮,适用于简单场景。可通过存储索引、增加动画或使用SortableJS优化体验,框架项目应同步数据层。原生API轻量但功能有限,适合基础需求。

实现HTML5表格的拖拽排序,可以通过原生的HTML5拖放API(Drag and Drop API)来完成。这种方式不需要额外的J*aScript库,适合简单的表格行拖拽排序需求。
启用表格行拖拽的基本原理
要让表格支持行的拖拽排序,需要为表格的每一行(tr)设置可拖拽属性,并监听相关的拖拽事件:
- 给 tr 添加 draggable="true" 属性,使其可拖动
- 监听 dragstart:记录被拖动的行
- 监听 dragover:阻止默认行为以允许放置
- 监听 drop:执行行的移动操作
实现步骤与代码示例
以下是一个完整的可运行示例:
小爱开放平台
小米旗下小爱开放平台
291
查看详情
<table id="sortableTable" border="1">
<tr draggable="true"><td>第1行</td></tr>
<tr draggable="true"><td>第2行</td></tr>
<tr draggable="true"><td>第3行</td></tr>
</table>
<script>
const table = document.getElementById('sortableTable');
let dragSrcRow = null;
// 开始拖动
function handleDragStart(e) {
dragSrcRow = this;
e.dataTransfer.effectAllowed = 'move';
e.dataTransfer.setData('text/html', this.innerHTML);
this.style.opacity = '0.4';
}
// 拖动过程中
function handleDragOver(e) {
if (e.preventDefault) {
e.preventDefault();
}
e.dataTransfer.dropEffect = 'move';
return false;
}
// 进入目标行时高亮提示
function handleDragEnter() {
this.classList.add('drag-over');
}
// 离开目标行时移除高亮
function handleDragLe*e() {
this.classList.remove('drag-over');
}
// 释放拖动
function handleDrop(e) {
if (e.stopPropagation) {
e.stopPropagation(); // 防止事件冒泡
}
// 避免自己拖到自己
if (dragSrcRow !== this) {
// 交换内容
dragSrcRow.innerHTML = this.innerHTML;
this.innerHTML = e.dataTransfer.getData('text/html');
// 可选:重新绑定事件(如果内容结构复杂)
initDragEvents();
}
return false;
}
// 初始化每行的拖拽事件
function initDragEvents() {
const rows = table.querySelectorAll('tr');
rows.forEach(row => {
row.addEventListener('dragstart', handleDragStart, false);
row.addEventListener('dragover', handleDragOver, false);
row.addEventListener('dragenter', handleDragEnter, false);
row.addEventListener('dragle*e', handleDragLe*e, false);
row.addEventListener('drop', handleDrop, false);
});
}
// 页面加载后初始化
initDragEvents();
</script>
<style>
.drag-over {
background-color: #f0f8ff;
}
</style>
增强功能建议
在实际项目中,可以考虑以下优化:
- 使用 DataTransfer 存储行索引而非 innerHTML,避免结构丢失
- 添加动画效果提升用户体验
- 兼容移动端时,可引入第三方库如 SortableJS,它支持触摸拖拽且兼容性更好
- 若表格数据由框架(如Vue/React)驱动,应在数据层同步更新顺序,再刷新视图
以上就是html5表格怎么整体移动_HTML5表格拖拽排序实现的详细内容,更多请关注其它相关文章!
# 是一个
# 科普类食品网站推广文案
# 上海网站排名优化开发
# 南通专业的网站建设价格
# 云南seo教程必选
# 推广数字营销招商方案
# 承德网站建设案例
# 胶州网站建设费用价格表
# seo黑帽大伽
# 漳州网站建设排行
# 平潭网络推广营销咋样啊
# 可以通过
# 相关文章
# 适用于
# 与传统
# 不需要
# html5
# 绑定
# 小爱
# 拖动
# 拖拽
# 拖拽排序
# ssl
# 事件冒泡
# go
# js
# html
# java
# javascript
# react
# vue
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
微信客户端如何收红包_微信客户端接收红包使用教程
fishbowl官网免费版 fishbowl养鱼网站入口
QQ邮箱官方网页版登录 QQ邮箱个人邮箱快速访问
AWS EC2实例间SQL Server连接超时:安全组配置与故障排除指南
sublime如何配置Python开发环境_将sublime打造成轻量级Python IDE
谷歌google账号怎么注册账号 谷歌账号注册官方流程
Win11怎么隐藏桌面图标 Win11一键隐藏所有桌面元素及恢复显示
sublime如何只显示或隐藏特定类型文件_sublime侧边栏文件过滤
CSS自定义字体样式被系统字体替换怎么办_font-face方式指定font-display控制渲染策略
PHP表单数据传递:如何通过隐藏输入字段获取动态ID
快手极速版在线观看 官方网页版登录地址
微信群消息显示延迟如何解决 微信群消息刷新优化方法
中兴Axon42Ultra怎样在文件App筛图_iPhone中兴Axon42Ultra文件App筛图【图片筛选】
蛙漫安全无毒 官方认证的绿色入口
AO3最新官网入口公告_2025AO3镜像站实时查询方法
必由学官网入口 必由学教师登录入口
Go RPC HTTP服务正确实现与常见陷阱解析
C++如何连接MySQL数据库_C++使用Connector/C++操作MySQL数据库教程
PPT平滑切换怎么做 PPT炫酷“平滑”切换动画制作教程【必学】
处理Kafka消费者会话超时:深入理解消息处理语义与幂等性
Steam官网入口直达 Steam注册及登录步骤
荒野行动PC版怎么注册_荒野行动PC版账号注册详细流程图文教程
yy漫画网页版官方入口_yy漫画官网登录页面链接
Node.js CSV 数据处理:基于字段空值条件过滤整条记录的策略
快手官方唯一登录入口 谨防山寨钓鱼网站
深入理解rpy2中的类型转换:优化Python对象到R矩阵的映射
Windows10怎么开启夜间模式 Windows10系统设置调整色温与亮度缓解夜间用眼疲劳【教程】
2025俄罗斯Yandex最新入口 官方网站地址及浏览器下载指南
印象笔记如何设离线包出差查阅_印象笔记设离线包出差查阅【离线阅读】
如何优雅地解决Livewire文件上传难题?SpatieLivewireFilepond让一切变得简单
R星幕后开发视频泄露 包含《GTA6》等多款大作
海棠账号登录入口_登录海棠账户同步阅读记录
Node.js CSV 数据处理:基于字段值条件过滤整条记录的策略
文心一言怎样用插件调度API数据_文心一言用插件调度API数据【API调用】
手机CPU怎么影响游戏体验_手机CPU对游戏性能的影响分析
vivo浏览器自带的下载器速度慢怎么办 vivo浏览器提升文件下载速度的技巧
12306几点到几点不能订票? | 官方最新系统维护时间全解析
Lar*el DB::listen 事件中的查询执行时间单位解析
必由学在线入口 必由学网页版快速登录入口
如何有效阻止外部脚本意外修改内联样式的高度属性
解决Python logging 中 datefmt 导致时间戳固定不变的问题
汽车之家官方网站官网入口_汽车之家网页版直接进入
b站怎么取消点赞_b站点赞取消操作方法
如何使 Jest 模拟函数默认抛出错误以提高测试效率
C++如何实现单例模式_C++设计模式之线程安全的单例写法
163邮箱注册官网 免费申请163个人邮箱
离线运行Go语言之旅:本地部署与GOPATH配置指南
台积电1.4nm工艺A14瞄准2028:10年来性能提升80%
React Router v6 教程:构建认证保护的私有路由与重定向策略
机器学习中对数变换预测结果的反向还原


2025-10-25
浏览次数:次
返回列表