`

移动端安卓和IOS开发框架Framework7教程-侧栏

阅读更多

让我们看看如何添加侧栏。我们的APP可能包含两种侧栏,一个在左边,另一个在右边。我们应该在body的开始处添加侧栏的htmlbody:

  1. <body>
  2.     <!-- First, we need to add Panel's overlay that will overlays app while panel is opened -->
  3.     <div class="panel-overlay"></div>
  4.  
  5.     <!-- Left panel -->
  6.     <div class="panel panel-left">
  7.         ... panel content goes here ...
  8.     </div>
  9.  
  10.     <!-- Right panel -->
  11.     <div class="panel panel-right">
  12.         ... panel content goes here ...
  13.     </div>
  14.  
  15.     ...
  16. </body>
复制

在我们添加侧栏后,我们需要为每个侧栏选择打开效果。可能有两种效果:"Reveal"(侧栏从整个App的内容中移出)和"Cover"(侧栏覆盖App的内容)。如果您想要使用"Reveal"效果应该向侧栏添加 "panel-reveal" 类, 如果要使用"Cover"效果则添加 "panel-cover" 类:

  1. <body>
  2.     <!-- First, we need to add Panel's overlay that will overlays app while panel is opened -->
  3.     <div class="panel-overlay"></div>
  4.  
  5.     <!-- Left panel, let it be with reveal effect -->
  6.     <div class="panel panel-left panel-reveal">
  7.         ... panel content goes here ...
  8.     </div>
  9.  
  10.     <!-- Right panel, with cover effect -->
  11.     <div class="panel panel-right panel-cover">
  12.         ... panel content goes here ...
  13.     </div>
  14.  
  15.     ...
  16. </body>
复制

打开和关闭侧栏

从 HTML

Ok, 现在当我们的App里有侧栏,我们需要知道如何打开/关闭它们:

  • 为了打开侧栏,我们需要添加"open-panel" 类到任意HTML元素上(最好加到链接节点上)

    为了关闭侧栏,我们需要添加"close-panel" 类到任意HTML元素上(最好加到链接节点上)

  • 如果你的App里有两个侧栏,链接默认将打开/关闭左侧栏

  • 如果你想要指定哪个侧栏被开启/关闭,那么它可以通过HTML元素上额外的属性data-panel="left"完成。

根据以上注意点:

  1. <body>
  2.   <!-- Panels Overlay -->
  3.   <div class="panel-overlay"></div>
  4.  
  5.   <!-- Left Panel with Reveal effect -->
  6.   <div class="panel panel-left panel-reveal">
  7.     <div class="content-block">
  8.       <p>Left Panel content here</p>
  9.       <!-- Click on link with "close-panel" class will close panel -->
  10.       <p><a href="#" class="close-panel">Close me</a></p>
  11.       <!-- Click on link with "open-panel" and data-panel="right" attribute will open Right panel -->
  12.       <p><a href="#" data-panel="right" class="open-panel">Open Right Panel</a></p>
  13.     </div>
  14.   </div>
  15.  
  16.   <!-- Right Panel with Cover effect -->
  17.   <div class="panel panel-right panel-cover">
  18.     <div class="content-block">
  19.       <p>Right Panel content here</p>
  20.       <!-- Click on link with "close-panel" class will close panel -->
  21.       <p><a href="#" class="close-panel">Close me</a></p>
  22.       <!-- Click on link with "open-panel" and data-panel="left" attribute will open Left panel -->
  23.       <p><a href="#" data-panel="left" class="open-panel">Open Left Panel</a></p>
  24.     </div>
  25.   </div>
  26.  
  27.   ...
  28.   <div class="page-content">
  29.     <div class="content-block">
  30.       <!-- If no data-panel attribute, Left panel will be opened by default -->
  31.       <p><a href="#" class="open-panel">Open Left Panel</a></p>
  32.       <!-- Click on link with "open-panel" and data-panel="right" attribute will open Right panel -->
  33.       <p><a href="#" data-panel="right" class="open-panel">Open Right Panel</a></p>
  34.     </div>
  35.   </div>
  36.   ...
  37. </body>
复制

实例预览

使用 JavaScript

我们也可以通过使用JavaScript打开和关闭侧栏,为此我们需要查看相关的App方法:

myApp.openPanel(position) - 打开侧栏.

  • position - string - 侧栏打开的位置: "left" 或 "right". 必需.

myApp.closePanel() - 关闭最近打开的侧栏.

  1. <body>
  2.   <div class="panel-overlay"></div>
  3.   <div class="panel panel-left panel-reveal">
  4.     <div class="content-block">
  5.       <p>Left Panel content here</p>
  6.       <p><a href="#" class="panel-close">Close me</a></p>
  7.       <p><a href="#" class="open-right-panel">Open Right Panel</a></p>
  8.     </div>
  9.   </div>
  10.   <div class="panel panel-right panel-cover">
  11.     <div class="content-block">
  12.       <p>Right Panel content here</p>
  13.       <p><a href="#" class="panel-close">Close me</a></p>
  14.       <p><a href="#" class="open-left-panel">Open Left Panel</a></p>
  15.     </div>
  16.   </div>
  17.   ...
  18.     <div class="page-content">
  19.       <div class="content-block">
  20.         <p><a href="#" class="open-left-panel">Open Left Panel</a></p>
  21.         <p><a href="#" class="open-right-panel">Open Right Panel</a></p>
  22.       </div>
  23.     </div>
  24.   ...
  25.   <script>
  26.     var myApp = new Framework7();
  27.  
  28.     var $$ = Dom7;
  29.  
  30.     $$('.open-left-panel').on('click', function (e) {
  31.         // 'left' position to open Left panel
  32.         myApp.openPanel('left');
  33.     });
  34.  
  35.     $$('.open-right-panel').on('click', function (e) {
  36.         // 'right' position to open Right panel
  37.         myApp.openPanel('right');
  38.     });
  39.  
  40.     $$('.panel-close').on('click', function (e) {
  41.         myApp.closePanel();
  42.     });
  43.  
  44.   </script>
  45. </body>
复制

实例预览

Panel 事件

Panel事件对检测用户如何与你的侧栏交互,或者在侧栏打开/关闭时做一些JavaScript操作非常有用。

Event(事件) Target(目标) Description(描述)
open Panel Element<div class="panel"> 当侧栏的打开动画开始时,事件将被触发
opened Panel Element<div class="panel"> 当侧栏的打开动画结束时,事件将被触发
close Panel Element<div class="panel"> 当侧栏的关闭动画开始时,事件将被触发
closed Panel Element<div class="panel"> 当侧栏的关闭动画完成时,事件将被触发

这里有一个例子:

  1. var myApp = new Framework7();
  2.  
  3. var $$ = Dom7;
  4.  
  5. $$('.panel-left').on('opened', function () {
  6.     myApp.alert('Left panel opened!');
  7. });
  8. $$('.panel-left').on('close', function () {
  9.     myApp.alert('Left panel is closing!');
  10. });
  11. $$('.panel-right').on('open', function () {
  12.     myApp.alert('Right panel is opening!');
  13. });
  14. $$('.panel-right').on('closed', function () {
  15.     myApp.alert('Right panel closed!');
  16. });
复制

 实例预览

滑动屏幕打开侧栏

Framework7支持通过滑动手势打开侧栏。但有一个限制 —— 只有一个菜单能被设置成允许滑动屏幕打开 (左或右)。

要使用这个功能,我们需要在App初始化时设置相关参数:

  1. var myApp = new Framework7({
  2.     swipePanel: 'left'
  3. });
复制

 实例预览

There are also swipePanelCloseOppositeswipePanelOnlyCloseswipePanelActiveAreaswipePanelNoFollow,swipePanelThreshold parameters that gives you more control over swipe panels. You can learn more about them in Initialize App section.

 

侧栏已经被打开?

有时候检测我们的一些侧栏是否是打开的是很有用的。这很容易,当一些菜单被打开时<body>将由以下规则生成被添加的类:with-panel-[position]-[effect]:

  • 如果你有带Cover效果的左侧栏打开着,body会有“with-panel-left-cover”类 <body class="with-panel-left-cover">

  • 如果你有带Reveal效果的左侧栏打开着, body 会有“with-panel-left-reveal”类 <body class="with-panel-left-reveal">

  • 如果你有带Cover效果的右侧栏打开着,body会有"with-panel-right-cover" 类  <body class="with-panel-right-cover">

  • 如果你有带Reveal效果的右侧栏打开着, body 会有"with-panel-right-reveal" 类 <body class="with-panel-right-reveal">

You can use it in JavaScript to detect opened panel:

  1. if ($$('body').hasClass('with-panel-left-cover')) {
  2.     console.log('Left Panel is opened')
  3. }
复制

或者在 CSS 定义额外的样式:

  1. /* Change Status Bar background when panel is opened */        
  2. body.with-panel-left-cover .statusbar-overlay{
  3.     background-color: #333;
  4. }
复制
 

 

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

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

相关推荐

    ios-简易侧栏菜单.zip

    在iOS应用开发中,侧栏菜单(Side Menu)是一种常见的设计模式,用于提供导航和功能选项,用户可以轻松地在各个视图之间切换。"ios-简易侧栏菜单.zip"这个压缩包文件显然包含了实现这样一个侧栏菜单的代码资源,其中...

    安卓App应用开发公司企业模板-应用 app开发 Mobileapp 工作室 menu 导航 侧栏 菜单.rar

    这个压缩包文件“安卓App应用开发公司企业模板-应用 app开发 Mobileapp 工作室 menu 导航 侧栏 菜单.rar”提供了一套完整的解决方案,包含了一系列关键组件和设计元素,特别关注了用户界面(UI)和用户体验(UX)的...

    IOS左右侧栏

    在iOS应用开发中,"左右侧栏"是一种常见的界面设计模式,它通常被用来实现主内容视图与侧边导航视图之间的切换。这种设计可以让用户通过简单的手势操作来访问更多的功能或者展示更多信息,比如设置、菜单选项等。...

    iOS 功能健全的侧栏 Panel 效果.zip

    在iOS应用开发中,侧栏Panel效果是一种常见的交互设计,用于提供导航或展示附加功能。标题中的"功能健全的侧栏Panel效果"指的是一个能够全面实现这种效果的解决方案,而描述中提到的"FAPanels - Swift"则是一个用...

    iOS侧栏菜单 SlideMenuControllerOC.zip

    iOS侧栏菜单 SlideMenuControllerOC ,iOS侧栏菜单,一个类似于iQON, Feedly, Google , Ameba 等App的侧栏菜...

    安卓A-Z字母排序索引相关-AndroidListView侧栏字母条索引定位.rar

    本资源"安卓A-Z字母排序索引相关-AndroidListView侧栏字母条索引定位.rar"主要涉及如何在ListView中实现这种功能,即侧栏字母条索引定位。 首先,我们需要理解ListView的工作原理。ListView通过Adapter(适配器)将...

    仿ios 风格边栏菜单

    总之,ReisdeMenu是Android开发者实现iOS风格侧栏菜单的一个强大工具,它不仅简化了开发流程,还提供了丰富的自定义选项,使得Android应用也能拥有与iOS相似的用户体验。对于那些寻求创新和独特设计感的开发者来说,...

    ios-仿QQ侧边栏.zip

    《iOS开发:仿QQ侧边栏实现详解》 在iOS应用开发中,为了提供良好的用户体验,许多应用都采用了类似QQ的侧边栏设计,让用户能够方便地访问各个功能模块。本教程将详细介绍如何在iOS项目中实现这样一个仿QQ侧边栏的...

    Android侧栏效果---使用DrawerLayout

    在Android应用开发中,侧边栏(Sidebar)通常作为一个重要的导航元素存在,它允许用户通过滑动屏幕边缘来展示或隐藏附加的菜单和功能。在本教程中,我们将深入探讨如何利用Google官方支持库中的`android.support.v4....

    安卓QQ相关相关-仿QQ5.0侧栏源码.rar

    在安卓平台上,QQ是一款非常流行的即时通讯应用,其设计和功能不断迭代以提供更好的用户体验。这个"仿QQ5.0侧栏源码.rar"压缩包文件包含了一个针对...这对于提升个人技能和开发更高质量的Android应用非常有帮助。

    HTML编写+div+css教程--v1.5--风雨无阻

    添加css的文本教程 添加div+css的文本教程 添加html常用元素快键 添加另存为功能 查看浏览器效果;修改窗口弹出 打开编辑框就有着Dreamweaver的内容!xhtml html简介 html可以帮助大家快速编写html;还可以...

    安卓SlidingMenu各种菜单侧滑菜单相关-android一款强大的侧栏菜单.rar

    在这个“安卓SlidingMenu各种菜单侧滑菜单相关-android一款强大的侧栏菜单.rar”压缩包中,包含了一个可能用于实现此类功能的项目源码。由于未提供具体的代码细节,以下将根据侧滑菜单的一般原理和SlidingMenu库的...

    ios-分类形式 集成侧边栏功能.zip

    在iOS应用开发中,侧边栏(Sidebar)通常被用作一种导航机制,提供一个从屏幕边缘滑出的菜单,用户可以从中选择不同的功能或内容。这个“ios-分类形式 集成侧边栏功能.zip”文件似乎包含了一个实现这种侧边栏效果的...

    Axure原型设计:移动端标签和菜单原型的应用.docx

    文档"Axure原型设计:移动端标签和菜单原型的应用.docx"详细介绍了如何利用Axure设计各种类型的标签和菜单,以优化用户体验。以下是这些设计方法的详细说明: 首先,页面菜单在大型多功能应用程序中扮演着关键角色...

    第34章 项目1-博客前端:封装库--百度分享侧栏1

    在本章的学习中,我们将探讨如何在博客前端实现一个封装的百度分享侧栏。这个功能在许多网站上都很常见,它允许用户...同时,这个过程也可以帮助我们更深入地理解前端开发中的布局、交互设计和资源整合等关键技术点。

    网站设计模板-蓝色侧栏大气css3商业服务整站模板.zip

    网站设计模板-蓝色侧栏大气css3商业服务整站模板.zip是一个包含全面的网页设计资源的压缩包,专为创建专业、大气且富有商业服务特色的网站而设计。这个模板充分利用了CSS3技术,提升了网页的视觉效果和用户体验,...

    安卓SlidingMenu各种菜单侧滑菜单相关-BorderMenu特别的侧栏菜单库.rar

    本资源“安卓SlidingMenu各种菜单侧滑菜单相关-BorderMenu特别的侧栏菜单库.rar”似乎提供了一个名为BorderMenu的特殊侧栏菜单库,以下将详细解释这个库以及侧滑菜单在Android开发中的实现和应用。 **BorderMenu...

    DolphinPHP快速开发框架 v1.4.3

    DophinPHP(海豚PHP)是一个基于ThinkPHP5.0.3开发的开源PHP快速开发框架,秉承极简、极速、极致的开发理念,为开发集成了基于数据-角色的权限管理机制,集成多种灵活快速构建工具,可方便快速扩展的模块、插件、...

    rm-635添加侧栏

    1. **准备工具与环境**:确保拥有DKU-2接口设备,安装必要的驱动程序和开发工具。此外,创建一个工作目录,如“A:\Hiddenfolder\Isasettings\Variantdefault”,用于存放修改后的配置文件。 2. **连接手机**:使用...

Global site tag (gtag.js) - Google Analytics