活字格标签页增加拖拽排序功能(SortableJS)
概述
使用 SortableJS 库为活字格的标签页(Tab)增加拖拽移动排序功能,让用户可以自由调整标签页顺序,提升交互体验。
第一步:引入 SortableJS
在活字格工程中添加 JavaScript 引用:
https://cdnjs.cloudflare.com/ajax/libs/Sortable/1.8.3/Sortable.min.js第二步:初始化拖拽排序
在页面加载时的 JS 命令中执行:
var container = document.querySelector(".FTM-nav-wrap-placeholder .FTM-nav-wrap-list");
var options = {
animation: 100, // 动画时长(ms)
draggable: ".FTM-nav-wrap-list-item", // 可拖拽元素选择器
dataIdAttr: "title", // 数据标识属性
onEnd: function(evt) {
// 拖拽结束后的回调
console.log("从", evt.oldIndex, "移到", evt.newIndex);
// 可在此保存新的排序到数据库
}
};
Sortable.create(container, options);参数说明
| 参数 | 说明 |
|---|---|
| animation | 拖拽动画时长,数值越大动画越慢 |
| draggable | 指定哪些子元素可以拖拽,CSS 选择器 |
| dataIdAttr | 拖拽后用于识别元素的数据属性 |
| onEnd | 拖拽结束回调,可获取新旧位置索引 |
| handle | 拖拽手柄选择器(如只允许拖拽标题栏) |
| ghostClass | 拖拽时幽灵元素的 CSS 类名 |
保存排序结果
onEnd: function(evt) {
var items = evt.target.querySelectorAll(".FTM-nav-wrap-list-item");
var order = [];
items.forEach(function(item) {
order.push(item.getAttribute("title"));
});
// 调用服务端命令保存排序
Forguncy.ServerCommand("保存标签顺序", { order: JSON.stringify(order) });
}效果
配置完成后,用户可通过鼠标拖拽标签页调整顺序,界面流畅自然。
标签:
暂无评论
快来发表第一条评论吧!