`

移动端安卓和IOS开发框架Framework7教程-可排序列表(Sortable List)

阅读更多

可排序列表是列表的扩展,可以对列表进行排序.

让我们来看一下可排序列表元素的布局结构:

  1. <!-- 加在列表区上额外的“sortable”类 -->
  2. <div class="list-block sortable">
  3.     <li>
  4.         <div class="item-content">
  5.             <div class="item-media">...</div>
  6.             <div class="item-inner">...</div>
  7.         </div>
  8.         <!-- 可排序句柄元素 -->
  9.         <div class="sortable-handler"></div>
  10.     </li>
  11. </div>
复制

其中:

  • sortable-handler - 可拖拽元素("draggable" element)(默认隐藏),允许你通过它来调整列表顺序

使列表变成可排序列表视图十分简单,只需要给列表区加上“sortable”类,并在列表元素<li>中加入“sortable-handler”元素作为其直接子元素

开启和关闭排序功能

在拥有可排序列表之后,我们需要某种方法来开启或者关闭排序功能。

通过HTML标签控制

可以通过在链接中设置特定的类和data属性来开启或者关闭排序功能:

  • "open-sortable"类加入到任意HTML元素中(推荐链接元素),点击该元素实现开启排序功能

  • "close-sortable"类加入到任意HTML元素中(推荐链接元素),点击该元素实现关闭排序功能

  • "toggle-sortable"类加入到任意HTML元素中(推荐链接元素),点击该元素实现切换(开启/关闭)排序功能

  • 如果在应用中有多个可排序列表,你需要在以上元素中加入data-sortable=".sortable"属性,以CSS选择器对应相应的可排序列表

  1. <div class="content-block">
  2.     <!-- 我们在data-sortable属性中指定目标可排序列表 -->
  3.     <p><a href="#" data-sortable=".sortable" class="open-sortable">Enable sortable</a></p>
  4.     <p><a href="#" data-sortable=".sortable" class="close-sortable">Disable sortable</a></p>
  5.     <p><a href="#" data-sortable=".sortable" class="toggle-sortable">Toggle sortable</a></p>
  6. </div>
  7. <!-- 可排序列表 -->
  8. <div class="list-block sortable">
  9.     <ul>
  10.       <li>
  11.         <div class="item-content">
  12.           <div class="item-media"><i class="icon icon-f7"></i></div>
  13.           <div class="item-inner">
  14.             <div class="item-title">Item 1</div>
  15.             <div class="item-after">$10</div>
  16.           </div>
  17.         </div>
  18.         <!-- 可排序句柄  -->
  19.         <div class="sortable-handler"></div>
  20.       </li>
  21.       <li>
  22.         <div class="item-content">
  23.           <div class="item-media"><i class="icon icon-f7"></i></div>
  24.           <div class="item-inner">
  25.             <div class="item-title">Item 2</div>
  26.             <div class="item-after">$20</div>
  27.           </div>
  28.         </div>
  29.         <div class="sortable-handler"></div>
  30.       </li>
  31.       ...
  32.     </ul>
  33. </div>
复制

实例预览

通过JavaScript控制

可以通过恰当的App方法:

myApp.sortableOpen(sortableContainer) - 在指定的可排序列表开启排序功能

  • sortableContainer - 可排序列表的HTML元素或CSS选择器,可选的。如果没有指定,Framework7默认将第一个<div class="list-block sortable">元素作为该方法目标。

myApp.sortableClose(sortableContainer) - 在指定的可排序列表关闭排序功能

  • sortableContainer - 可排序列表的HTML元素或CSS选择器,可选的。如果没有指定,Framework7默认将第一个<div class="list-block sortable">元素作为该方法目标。

myApp.sortableToggle(sortableContainer) - 在指定的可排序列表切换(开启/关闭)排序功能

  • sortableContainer - 可排序列表的HTML元素或CSS选择器,可选的。如果没有指定,Framework7默认将第一个<div class="list-block sortable">元素作为该方法目标。
  1. <p><a href="#" class="open">Enable sortable</a></p>
  2. <p><a href="#" class="close">Disable sortable</a></p>
  3. <p><a href="#" class="toggle">Toggle sortable</a></p>
复制

 

  1. var myApp = new Framework7();
  2.  
  3. var $$ = Dom7;
  4.  
  5. $$('.open').on('click', function () {
  6.   myApp.sortableOpen('.sortable');
  7. });
  8. $$('.close').on('click', function () {
  9.   myApp.sortableClose('.sortable');
  10. });
  11. $$('.toggle').on('click', function () {
  12.   myApp.sortableToggle('.sortable');
  13. });
复制

实例预览

Sortable Events

事件(Event) 目标(Target) 说明(Description)
open 可排序列表<div class="list-block sortable"> 当开启排序功能时触发
close 可排序列表<div class="list-block sortable"> 当关闭排序功能时触发
sort 列表项目<li> 当用户释放正在排序的列表项目(<li>)且该项目的顺序改变时触发

1
0
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    react-native-sortable-list:React Native可排序列表组件

    可排序列表视图,用于本机内容演示版安装npm i react-native-sortable-list --save例子API道具数据(对象)数据源订购? (数组)来自数据的键数组,来自数组的键顺序将用于初始行顺序风格? (对象,数组) ...

    移动端列表长按上下拖动排序

    "移动端列表长按上下拖动排序"是一种提升用户体验的功能,允许用户通过简单的手势操作来调整列表项的顺序,使得信息管理更加直观和便捷。这个功能主要利用了HTML5的sortTable技术和触摸事件来实现,专门针对移动设备...

    前端项目-angular-ui-sortable.zip

    `angular-ui-sortable`指令允许开发者在AngularJS应用中创建可拖动排序的列表,用户可以通过直观的拖放操作来调整列表项的顺序。这个特性在诸如任务管理、数据展示、菜单配置等场景中十分有用,提升了用户体验并增强...

    react-native-smart-sortable-sudoku-grid, 一个智能可以排序的数独网格,用于响应原生应用程序.zip

    react-native-smart-sortable-sudoku-grid, 一个智能可以排序的数独网格,用于响应原生应用程序 react-native-smart-sortable-sudoku-grid 一个智能可以排序的数独网格,用于... 它在iOS和安卓上工作。预览 安装npm i

    react-native-SortableList:React Native的流体可排序列表

    React本机可排序列表(概念验证!) 这是演示的react-native端口。 它支持任意数量的项目,每个项目可以具有不同的高度。 它还包括一些本机特定的调整: 项目列表嵌入在ScrollView中。 长按开始排序。 在排序过程中...

    前端项目-react-sortable-hoc.zip

    `SortableElement`用于将单个列表项变为可拖动的元素,而`SortableList`则负责处理整个列表的排序逻辑。这两个组件通过props相互交互,确保了排序过程的正确性和流畅性。此外,该库还提供了一系列自定义选项,如排序...

    react-sortable-list:可排序的列表组件

    react-sortable-list是使用react和html5拖放API的可排序列表组件。 安装 yarn add react-sortable-list 用 import SortableList from 'react-sortable-list' import ReactDOM from 'react-dom' import React , { ...

    Laravel开发-l5-filterable-sortable

    在本文中,我们将深入探讨Laravel开发中的一个关键特性——"l5-filterable-sortable"。这个特性主要用于在Web应用程序中实现数据的高效筛选和排序,尤其适用于处理大量的数据库记录。它基于laracasts/查询字符串筛选...

    react-native-sortable-listview, ListView的拖放功能包装,用于响应本机.zip

    react-native-sortable-listview, ListView的拖放功能包装,用于响应本机 react-native-sortable-listviewListView的拖放功能包装,用于响应本机。 拖动时允许拖放自动滚动行。将它添加到你的项目中运行 npm install...

    Laravel开发-eloquent-sortable

    此外,`eloquent-sortable`还提供了一些其他有用的方法,如`highest()`和`lowest()`,它们分别用于移动模型到排序列表的顶部和底部。同时,`sortAfter()`和`sortBefore()`可以用来根据现有模型的位置调整排序。 在...

    Laravel开发-laravel-sortable

    在Laravel框架中,开发一个应用常常涉及到数据的管理和展示,而数据的排序是其中非常常见且重要的一环。`laravel-sortable`是一个专门为Laravel设计的包,它简化了对Eloquent ORM(对象关系映射)模型的排序过程。这...

    前端项目-knockout-sortable.zip

    3. 整合优势:通过knockout-sortable,开发者无需关心排序后的DOM更新和数据模型同步,大大减少了手动操作,提高了代码的可维护性和开发效率。 四、实际应用 在开发复杂的Web应用时,如任务管理器、购物车或者日历...

    Vue3+element-plus-table-dragable(Sortable.js)实现表格拖动排序

    在网上找的(vue3+sortable.js根本跑不起来)网上好多例子在vue3下根据跑不起来于是,也没有对表格排序的例子。Vuedraggable 是基于并提供Sortable.js的所有功能。重用现有element-plus组件库。对于小白来说怎么在...

    前端项目-angular-sortable-view.zip

    总结来说,angular-sortable-view是AngularJS开发中一个强大的工具,它简化了前端项目中数据列表的多列排序任务,提供了声明性的API,使开发者能够专注于业务逻辑,而非底层排序细节。通过合理的配置和灵活的扩展性...

    Laravel开发-sortable

    在Laravel框架中,"sortable"是一个非常实用的工具,用于处理数据表列的排序功能。这个包使得开发者能够方便地实现对数据库记录的动态排序,提升用户体验,并且简化了后端代码的编写。让我们深入了解一下这个包的...

    react-native-sortable-listview:可以拖放的ListView包装器,用于React Native

    不推荐使用 该库没有活动的维护程序,并且有许多未解决的问题。 不建议用于新项目。 考虑改用 。... renderRow方法必须呈现将onLongPress和onPressOut方法转发到Touchable *子组件的组件。 调用onLongPr

    react-SortableList:React可排序列表。 具有React运动的流体动画

    ) 这是对reaction-motion可排序列表演示的概括。 它支持任意数量的项目,每个项目可以具有不同的高度。原料药&lt;SortableList items={data}&gt; {(key) =&gt; ... }&lt;/SortableList&gt;其中data是字符串到数据的映射(即{...

    angular-ui-sortable实现可拖拽排序列表

    总之,`angular-ui-sortable` 提供了一个方便的方式来实现 AngularJS 应用中的可拖拽排序列表,它通过结合 jQuery UI 的 Sortable 功能和 AngularJS 的双向数据绑定,使得排序操作变得直观且易于集成。

    Js排序插件Sortable

    7. **自定义行为**:提供丰富的API和选项,允许开发者根据需求调整排序行为,如排序方向、阻止拖放等。 8. **事件驱动**:通过绑定不同的事件,可以捕获用户操作,如`onSort`、`onStart`、`onEnd`等,方便进行后续...

Global site tag (gtag.js) - Google Analytics