返回介绍

可嵌套

发布于 2019-05-26 16:28:28 字数 5461 浏览 1116 评论 0 收藏 0

创建可以通过拖拽排序的可嵌套式列表。

可嵌套组件允许你通过拖拽排序条目。这是非常有用的,比如在管理界面中希望组织不同的分类或者菜单条目时。

用法

可嵌套列表由列表本身、它的内容条目和可嵌套的面板组成。注意 使用此组件需要额外添加 nestable.css 文件,在css/components文件夹中。此组件需要额外添加 nestable.js 文件,在js/components文件夹中。

class和data属性描述
.uk-nestable添加此类名到 <ul> 元素,定义可嵌套组件。
.uk-nestable-item添加此类名到列表的每一个 <li> 元素。
.uk-nestable-panel添加此类名到 <li> 元素内部的 <div> 元素,给条目设定样式。

NOTE 为了使必要的JavaScript生效,需要添加 data-uk-nestable 属性。

<ul class="uk-nestable" data-uk-nestable>
    <li class="uk-nestable-item">
<div class="uk-nestable-panel"> ... </div>
    </li>
</ul>

可嵌套组件的手柄/Nestable handle

默认地,整个可嵌套元素都可以用来拖拽排序。要创建一个替换默认效果的手柄,需要添加 {handleClass:'uk-nestable-handle'} 选项到data 属性中。并为你想要用作手柄的元素添加手柄的类名。

<ul class="uk-nestable" data-uk-nestable="{handleClass:'uk-nestable-handle'}">
    <li class="uk-nestable-item">
<div class="uk-nestable-panel">
    <div class="uk-nestable-handle"></div>
    ...
</div>
    </li>
</ul>

可嵌套拨动/Nestable toggle

默认地,整个可嵌套元素都能拖拽排序。要创建一个替换默认效果的手柄,需要添加 .uk-nestable-toggle 类名和 data-nestable-action="toggle" 属性到可嵌套面板内的 <div> 元素。

<ul class="uk-nestable" data-uk-nestable">
    <li class="uk-nestable-item">
<div class="uk-nestable-panel">
    <div class="uk-nestable-toggle" data-nestable-action="toggle"></div>
    ...
</div>
    </li>
</ul>

多个列表的排序

要实现垮列表的排序,你可以为每个列表添加e data-uk-nestable="{group:'GROUP-NAME'}" 属性将他们归为一组。

<ul class="uk-nestable" data-uk-nestable="{group:'my-group'}">...</ul>
<ul class="uk-nestable" data-uk-nestable="{group:'my-group'}">...</ul>

禁用嵌套

禁用列表条目的嵌套,你只需添加 data-uk-nestable="{maxDepth:1}" 属性。当然你还可以使用此属性来确定要嵌套的深度能有多大。

<ul class="uk-nestable" data-uk-nestable="{maxDepth:1}">...</ul>

JavaScript 选项

这是一个如何使用data属性来设置选项的例子:

data-uk-nestable="{maxDepth:0, group:'widgets'}"
选项可用值默认值描述
groupstringfalse列表组
maxDepthinteger10最大嵌套层数
thresholdinteger20以px为单位,开始拖拽的阈值。
listNodeNamestringul列表节点名称
itemNodeNamestringli条目节点名称
listBaseClassstringuk-nestable列表的基本类名
listClassstringuk-nestable-list列表的类名
listitemClassstringuk-nestable-list-item列表条目的类名
itemClassstringuk-nestable-item条目类名
dragClassstringuk-nestable-list-dragged添加到被拖拽列表的类名
movingClassstringuk-nestable-moving拖动时添加到 <html> 元素的类名
handleClassstringuk-nestable-handle拖拽手柄的类名
collapsedClassstringuk-nestable-collapsed被收缩的条目的类名
placeClassstringuk-nestable-placeholder当前被拖拽元素的占位符类名
noDragClassstringuk-nestable-nodrag带有此类名的元素不会触发拖拽。Elements with this class will not trigger dragging. Useful when having the complete item draggable and not just the handle.
noChildrenClassstringuk-nestable-nochildren带有此class的元素不再有子级元素。这对于最低层级的条目很有用。
emptyClassstringuk-nestable-empty空列表的类名

手动初始化

var nestable = UIkit.nestable(element, { /* options */ });

Events

名称参数描述
start.uk.nestableevent, nestable object拖拽开始时触发
move.uk.nestableevent, nestable object移动可嵌套条目时触发
stop.uk.nestableevent, nestable object拖拽终止时触发
change.uk.nestableevent, nestable item, action改变可嵌套条目时触发

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文