`

移动端安卓和IOS开发框架Framework7教程-滑动操作列表(可滑动列表)

阅读更多

滑动操作列表是列表的扩展,它提供滑动操作的功能,滑动列表元素可以展现隐藏的功能菜单,就像滑动删除一样。

让我们来看一下滑动列表元素的布局结构:

  1. <div class="list-block">
  2.   <ul>
  3.     <!-- li上额外的“swipeout”类 -->
  4.     <li class="swipeout">
  5.       <!-- 被“swipeout-content”包裹起来的普通列表元素 -->
  6.       <div class="swipeout-content">
  7.         <!-- 你的列表元素放在这里 -->
  8.         <div class="item-content">
  9.           <div class="item-media">...</div>
  10.           <div class="item-inner">...</div>
  11.         </div>
  12.       </div>
  13.       <!-- Swipeout actions left -->
  14.       <div class="swipeout-actions-left">
  15.         <!-- Swipeout actions links/buttons -->
  16.         <a href="#">Action 1</a>
  17.         <a href="#">Action 2</a>
  18.       </div>
  19.       <!-- Swipeout actions right -->
  20.       <div class="swipeout-actions-right">
  21.         <!-- Swipeout actions links/buttons -->
  22.         <a href="#">Action 1</a>
  23.         <a class="swipeout-close" href="#">Action 2</a>
  24.       </div>
  25.     </li>
  26.     ...
  27.   </ul>
  28. </div>
复制

其中:

  • swipeout-content - 列表元素的容器,它会随着滑动操作移动
  • swipeout-actions-left - 向左滑动的按钮和链接的容器
  • swipeout-actions-right - 向左滑动的按钮和链接的容器
  • swipeout-close - 一个可选的链接,点击之后会关闭

注意,swipeout-contentswipeout-actions-left/right应该是<li>的直接子元素

如果只含有“item-content”类的子元素,可以将“item-content”类加到“swipeout-content”元素上,以简化结构:

  1. <li class="swipeout">
  2.   <div class="swipeout-content item-content">
  3.     <div class="item-media">...</div>
  4.     <div class="item-inner">...</div>
  5.   </div>
  6.   <div class="swipeout-actions-right">
  7.     <a href="#">Action 1</a>
  8.     <a href="#">Action 2</a>
  9.   </div>
  10. </li>
复制

如果使用的是链接元素,你可以将上述的类都加到链接元素上:

  1. <li class="swipeout">
  2.   <a href="#" class="swipeout-content item-content item-link">
  3.     <div class="item-media">...</div>
  4.     <div class="item-inner">...</div>
  5.   </a>
  6.   <div class="swipeout-actions-right">
  7.     <a href="#">Action 1</a>
  8.     <a href="#">Action 2</a>
  9.   </div>
  10. </li>
复制

示例

  1. <!-- On right side -->
  2. <div class="list-block">
  3.   <ul>
  4.     <li class="swipeout">
  5.       <div class="swipeout-content item-content">
  6.         <div class="item-media">...</div>
  7.         <div class="item-inner">...</div>
  8.       </div>
  9.       <div class="swipeout-actions-right">
  10.         <a href="#" class="action1">Action 1</a>
  11.       </div>
  12.     </li>
  13.     <li class="swipeout">
  14.       <div class="swipeout-content item-content">
  15.         <div class="item-media">...</div>
  16.         <div class="item-inner">...</div>
  17.       </div>
  18.       <div class="swipeout-actions-right">
  19.         <a href="#" class="action1 bg-orange">Action 1</a>
  20.         <a href="#" class="action2">Action 2</a>
  21.       </div>
  22.     </li>
  23.     ...
  24.   </ul>
  25. </div>
  26.  
  27. <!-- On left side -->
  28. <div class="list-block">
  29.   <ul>
  30.     <li class="swipeout">
  31.       <div class="swipeout-content item-content">
  32.         <div class="item-media">...</div>
  33.         <div class="item-inner">...</div>
  34.       </div>
  35.       <div class="swipeout-actions-left">
  36.         <a href="#" class="action1">Action 1</a>
  37.       </div>
  38.     </li>
  39.     <li class="swipeout">
  40.       <div class="swipeout-content item-content">
  41.         <div class="item-media">...</div>
  42.         <div class="item-inner">...</div>
  43.       </div>
  44.       <div class="swipeout-actions-left">
  45.         <a href="#" class="action1 bg-orange">Action 1</a>
  46.         <a href="#" class="action2">Action 2</a>
  47.       </div>
  48.     </li>
  49.     ...
  50.   </ul>
  51. </div>
  52.  
  53. <!-- On both sides -->
  54. <div class="list-block">
  55.   <ul>
  56.     <li class="swipeout">
  57.       <div class="swipeout-content item-content">
  58.         <div class="item-media">...</div>
  59.         <div class="item-inner">...</div>
  60.       </div>
  61.       <div class="swipeout-actions-left">
  62.         <a href="#" class="action1">Action L1</a>
  63.       </div>
  64.       <div class="swipeout-actions-right">
  65.         <a href="#" class="action1">Action R1</a>
  66.       </div>
  67.     </li>
  68.     <li class="swipeout">
  69.       <div class="swipeout-content item-content">
  70.         <div class="item-media">...</div>
  71.         <div class="item-inner">...</div>
  72.       </div>
  73.       <div class="swipeout-actions-left">
  74.         <a href="#" class="action1 bg-pink">Action L1</a>
  75.         <a href="#" class="action2 bg-lightblue">Action L2</a>
  76.       </div>
  77.       <div class="swipeout-actions-right">
  78.         <a href="#" class="action1 bg-orange">Action R1</a>
  79.         <a href="#" class="action2">Action R2</a>
  80.       </div>
  81.     </li>
  82.     ...
  83.   </ul>
  84. </div>
复制
  1. var myApp = new Framework7();
  2.  
  3. var $$ = Dom7;
  4.  
  5. $$('.action1').on('click', function () {
  6.   myApp.alert('Action 1');
  7. });
  8. $$('.action2').on('click', function () {
  9.   myApp.alert('Action 2');
  10. });
复制

实例预览

滑动删除(Swipe To Delete)

在Framework7中使用滑动删除不需要写Javascript代码,只需要将<a class="swipeout-delete">链接加入到滑动菜单中的按钮上:

  1. <li class="swipeout">
  2.   <div class="swipeout-content item-content">
  3.     <div class="item-media">...</div>
  4.     <div class="item-inner">...</div>
  5.   </div>
  6.   <div class="swipeout-actions-right">
  7.     <!-- Add this button and item will be deleted automatically -->
  8.     <a href="#" class="swipeout-delete">Delete</a>
  9.   </div>
  10. </li>
    复制

 

可以在点击删除按钮的时候调用确认询问模态窗口(Confirm modal),只有在确认后才会将需要删除的元素从列表中移除。使用确认功能只需要把“data-confirm”和“data-confirm-title”(可选)属性加到删除菜单链接(<a class="swipeout-delete">)上:

  1. <li class="swipeout">
  2.   <div class="swipeout-content item-content">
  3.     <div class="item-media">...</div>
  4.     <div class="item-inner">...</div>
  5.   </div>
  6.   <div class="swipeout-actions-right">
  7.     <!-- We add data-confirm and data-confirm-title attributes -->
  8.     <a href="#" class="swipeout-delete" data-confirm="Are you sure want to delete this item?" data-confirm-title="Delete?">Delete</a>
  9.     </div>
  10.   </div>
  11. </li>
    复制

实例预览

滑动距离过长(swipeover)

当滑动距离过长的时候,可以通过 swipeout-overswipe 类来制定一个操作按钮。

  1. <li class="swipeout">
  2.   <div class="swipeout-content item-content">
  3.     <div class="item-media">...</div>
  4.     <div class="item-inner">...</div>
  5.   </div>
  6.   <div class="swipeout-actions-right">
  7.     <a href="#">More</a>
  8.     <a href="#" class="swipeout-delete swipeout-overswipe">Delete</a>
  9.     </div>
  10.   </div>
  11. </li>
    复制

overswipe 只能用在右滑的最后一个按钮或者左滑的第一个按钮。

overswipe 的时候会自动在overswipe按钮上触发click事件,所以你需要在该按钮上绑定正确的事件监听。

  1. <li class="swipeout">
  2.   <div class="swipeout-content">
  3.     <a href="#" class="item-content item-link">
  4.       <div class="item-inner">
  5.         <div class="item-title-row">
  6.           <div class="item-title">Facebook</div>
  7.           <div class="item-after">17:14</div>
  8.         </div>
  9.         <div class="item-subtitle">New messages from John Doe</div>
  10.         <div class="item-text">Lorem ipsum ...</div>
  11.       </div>
  12.     </a>
  13.   </div>
  14.   <div class="swipeout-actions-left">
  15.     <a href="#" class="swipeout-overswipe bg-green reply">Reply</a>
  16.     <a href="#" class="bg-blue forward">Forward</a>
  17.   </div>
  18.   <div class="swipeout-actions-right">
  19.     <a href="#" class="mark bg-orange">Mark</a>
  20.     <a href="#" class="swipeout-delete swipeout-overswipe">Delete</a>
  21.   </div>
  22. </li>
    复制
  1. var myApp = new Framework7();
  2.  
  3. var $$ = Dom7;
  4.  
  5. $$('.mark').on('click', function () {
  6.   myApp.alert('Mark');
  7. });
  8. $$('.reply').on('click', function () {
  9.   myApp.alert('Reply');
  10. });
  11. $$('.forward').on('click', function () {
  12.   myApp.alert('Forward');
  13. });
    复制

实例预览

Swipeout JavaScript API

Swipeouts 有丰富的JS API可以用来控制里面的元素:

myApp.swipeoutOpen(el) - 在指定的元素中显示滑动菜单

  • el - 带有“swipeout”类的列表元素(<li>)的DOM节点或CSS选择器。必选的
  • direction - 滑动方向,字符串 (可以是 "left" 或者 "right"). 如果一个条目同时有左滑和右滑操作,那么你必须指定这个参数. 可选
  • callback - function - 回调函数,打开动画完成之后执行。

myApp.swipeoutClose(el) - 在指定的元素中隐藏滑动菜单

  • el - 带有“swipeout”类的列表元素(<li>)的DOM节点或CSS选择器。必选的
  • callback - function - 回调函数,关闭动画完成之后执行。

myApp.swipeoutDelete(el) - 删除指定的滑动列表中的元素

  • el - 带有“swipeout”类的列表元素(<li>)的DOM节点或CSS选择器。必选的
  • callback - function - 回调函数,完成动画后删除DOM前执行。

myApp.swipeoutOpenedEl - 属性(property)。包含已打开的滑动列表元素。当没有滑动列表中的元素被打开,返回undefined

滑动列表事件(Swipeout events)

滑动列表元素会触发以下事件:

事件(Event) 目标(Target) 说明(Description)
swipeout 滑动列表元素<li class="swipeout"> 当滑动列表元素被移动时触发,event.detail.progress表示当前打开的菜单的开启进度
open 滑动列表元素<li class="swipeout"> 当滑动列表元素开始显示时触发
opened 滑动列表元素<li class="swipeout"> 当滑动列表元素完成显示时触发
close 滑动列表元素<li class="swipeout"> 当滑动列表元素开始隐藏时触发
closed 滑动列表元素<li class="swipeout"> 当滑动列表元素完成隐藏时触发
delete 滑动列表元素<li class="swipeout"> 当滑动列表元素开始删除操作时触发
deleted 滑动列表元素<li class="swipeout"> 当滑动列表元素被删除后触发
  1. var myApp = new Framework7();
  2.  
  3. var $$ = Dom7;
  4.  
  5. $$('.swipeout').on('deleted', function () {
  6.   myApp.alert('Item removed');
  7. });
  8.  
  9. $$('.swipeout').on('swipeout', function (e) {
  10.   console.log('Item opened on: ' + e.detail.progress + '%');
  11. });
    复制

实例预览

 

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

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

相关推荐

    Framework7Vue使用Framework7和Vue构建完整的iOS和Android应用程序

    Framework7是一款免费、开源的移动应用框架,旨在为开发者提供构建iOS和Android应用的全套工具。它提供了丰富的组件库,包括导航、表单、视图、滑块等,使开发者能够轻松实现原生应用的界面和交互效果。 二、Vue.js...

    Framework7用于构建iOS和Android应用全功能移动HTML框架

    Framework7是一款强大的、免费的HTML5移动应用框架,专为构建具有原生iOS和Android界面风格的混合式移动应用而设计。它允许开发者使用Web技术(如HTML, CSS, JavaScript)来创建高度交互且功能丰富的应用程序,同时...

    ios-滑动折线图.zip

    1. **Core Graphics (Core Graphics Framework)**:iOS中的Core Graphics框架用于低级图形绘制,包括2D路径、形状和图像。在这里,折线图的线条绘制就需要利用到Core Graphics,通过`CGContextMoveToPoint`,`...

    robotframework-appiumlibrary-1.4.2.tar.gz

    Robot Framework是一个通用的自动化框架,支持关键字驱动测试方法,而AppiumLibrary则是其扩展,用于对接Appium,实现对iOS和Android应用程序的自动化测试。 在"robotframework-appiumlibrary-1.4.2.tar.gz"这个...

    iOS实例开发源码——joshvera-iPhone-Tetris-2dd7365.zip

    2. **UIKit框架**:在iOS开发中,UIKit是核心框架,用于构建用户界面。源码中会涉及UIViewController、UIView、UIImageView、UILabel等类,展示如何布局UI元素并处理用户交互。 3. **游戏循环(Game Loop)**:所有...

    framework7 demo

    这款框架的设计灵感来源于iOS和Android的原生界面,使得开发者能够创建出与原生应用体验相似的Web应用。它提供了丰富的组件和API接口,适用于开发跨平台的Hybrid App或Web App。 在"framework7 demo"中,你将找到一...

    iOS开发 相册照片多选

    在iOS开发中,用户经常需要从设备的相册中选取多张照片,例如在社交应用中分享图片。本文将深入探讨如何实现“iOS开发 相册照片多选”这一功能,以及如何利用开源库ELCImagePickerController来简化这一过程。 首先...

    IOS应用源码Demo-相册-毕设学习.zip

    2. **UIKit框架**:UIKit是iOS应用开发的核心框架,它提供了创建用户界面、处理用户交互和管理应用程序生命周期所需的类和方法。在这个相册应用中,我们可能会看到UITableView和UICollectionView的使用,它们分别...

    ios应用源码之感恩---奉上大量samplecode(第6部分)19_18208_4

    在iOS应用开发的世界里,源码是学习和进步的关键。标题中的"感恩——奉上大量sample code(第6部分)19_18208_43f963dc268dcf3"暗示了这是一份非常珍贵的资源,其中包含了丰富的示例代码,帮助开发者深入理解iOS应用...

    PyPI 官网下载 | robotframework-ioslibrary-0.1.23.tar.gz

    这个库允许开发者和测试工程师通过Robot Framework的简洁语法来执行iOS应用的测试和操作。 **Robot Framework** Robot Framework 是一个开放源代码的通用自动化框架,它采用关键字驱动的测试方法,适用于系统集成、...

    IOS应用源码之【框架】sliderBar for iPhone.rar

    在iOS应用开发中,框架(Framework)是一种封装了多种类库和接口的集合,开发者可以利用这些现成的组件快速构建应用程序。本压缩包提供的"sliderBar for iPhone"是一个专门针对iPhone平台的滑块栏框架,它可以帮助...

    wpf模仿iOS滑动解锁模拟器

    “wpf模仿iOS滑动解锁模拟器”这一标题表明,这是一个使用Windows Presentation Foundation(WPF)框架创建的应用程序,该程序旨在模仿苹果iOS设备上的滑动解锁功能。WPF是.NET Framework的一部分,用于构建桌面应用...

    Epsilon Framework仿IOS手机网站模板-手机 手机网站 jquerymobile mobileFramework

    Epsilon Framework是一个基于HTML5、CSS3和JavaScript的前端开发框架,其设计灵感来源于Apple的iOS界面,提供了诸如滑动、下拉刷新、侧滑菜单等常见iOS交互效果。通过使用Epsilon,开发者可以轻松实现iOS风格的布局...

    ios-swift --- 相册选择 和照相机.zip

    在iOS应用开发中,Swift语言提供了丰富的API和工具来实现相册选择和相机功能。本文将深入探讨如何利用Swift来创建这些功能,并基于提供的“Fusuma-master”项目进行讲解。 首先,我们要了解iOS中的两个核心框架:...

    《iOS传感器应用开发最佳实践》源码

    在iOS应用开发中有很多涉及硬件访问和传感器编程。本书我们将向大家介绍苹果iOS设备主要的传感器应用开发。本书是我们智捷iOS课堂团队编写iOS系列丛书中的一本,目的是使一个有iOS开发基础的程序员通过本书的学习,...

    ios学习ppt第一章

    ### iOS7开发概述 #### 1.1 iOS7新特性 **1.1.1 控制中心** 控制中心是iOS7引入的一项重要功能,它让用户能够快速访问常用设置和工具,如屏幕亮度调整、音乐播放控制等。用户只需从屏幕底部向上滑动即可调出控制...

    IOS7呈现IOS6水滴刷新效果

    在iOS开发中,UI设计和用户体验是至关重要的部分。"IOS7呈现IOS6水滴刷新效果"这个主题聚焦于如何在iOS7系统中实现类似iOS6的水滴刷新动画,这是一种用户界面(UI)交互的设计元素,旨在提高用户的参与度和满意度。...

    swift实现的iOS视频播放器,支持滑动调节音量亮度,拖动调整进度,倍速播放等

    BLVideoPlayer是一款swift实现的、具有亮度调节、音量调节、拖动快进、横竖屏切换以及竖屏时上下滑动切换视频的功能,代码封装在framework中,方便调用。 更多描述,请参考博文 http://t.csdn.cn/0HBe9

    IOS应用源码之【类库与框架】-FlowCover.rar

    在iOS应用开发中,类库和框架扮演着至关重要的角色,它们是构建高效、功能丰富的应用程序的基础。"FlowCover" 是一个专为iOS设计的类库,它可能提供了独特的界面过渡效果,使得用户在浏览内容时能有流畅的体验。在...

    ios-MJFrameworkDemo.zip

    在iOS应用开发中,我们经常需要对各种功能进行封装,以提高代码的可复用性和项目的整体效率。本文将深入探讨名为"ios-MJFrameworkDemo.zip"的压缩包,其中包含了一个名为MJFrameworkDemo的工具库。这个框架集成了...

Global site tag (gtag.js) - Google Analytics