`

移动端安卓和IOS开发框架Framework7教程-Popover 布局

阅读更多

Popover 组件是用来管理popover里的内容展示。你可以用 popovers 临时显示一些信息. popover 保持可见直到用户点击popover窗口外面或者你明确地移除它。

注意,不推荐在小屏幕(iPhone)上使用 Popover 。 在小屏幕上你应该使用 操作表 来代替。或者使用  操作表转换为Popover。

Popover 布局

首先让我们来看看 Popover 布局, 它非常简单, 只需要添加在 <body>的结尾处:

  1. <body>
  2.     ...
  3.     <div class="popover">
  4.         <!-- Popover's angle arrow -->
  5.         <div class="popover-angle"></div>
  6.  
  7.         <!-- Popover content -->
  8.         <div class="popover-inner">
  9.             <!-- Any HTML content here -->
  10.         </div>
  11.     </div>
  12. </body>
复制

Popover 是高度可定制元素,你可以往里面放任何东西,甚至是另一个完整的视图。

打开和关闭 Popover

通过HTML

可以通过在链接里使用特定的类名和data属性,打开和关闭所需的 Popover :

  • 为了打开 popover ,我们需要添加 "open-popover" 类到任意 HTML 元素中 (最好是链接)

  • 为了关闭 popover ,我们需要添加 "close-popover" 类到任意 HTML 元素中 (最好是链接)

  • 如果你的App里有超过一个 popover, 你需要指定适当 popover,则需添加额外的属性data-popover=".my-popover" 到这个 HTML 元素上

Popover 定位

当我们通过这样的方法(通过HTML)打开 Popover , 它会被自动定位到我们点击打开Popover的元素附近。

  1. <body>
  2.   ...  
  3.   <div class="navbar">
  4.     <div class="navbar-inner">
  5.       <!-- In data-popover attribute we specify CSS selector of popover we need to open -->
  6.       <div class="left"><a href="#" data-popover=".popover-about" class="link open-popover">About</a></div>
  7.       <div class="center">Popover</div>
  8.       <div class="right"><a href="#" data-popover=".popover-links" class="link open-popover">Links</a></div>
  9.     </div>
  10.   </div>
  11.   <div class="page-content">
  12.     <div class="content-block">
  13.       <!-- In data-popover attribute we specify CSS selector of popover we need to open -->
  14.       <p><a href="#" data-popover=".popover-about" class="open-popover">Open About Popover</a></p>
  15.       <p><a href="#" data-popover=".popover-links" class="open-popover">Open Links Popover</a></p>
  16.     </div>
  17.   </div>
  18.   ...
  19.  
  20.   <!-- By default popover has 320px width, let's make it a bit narrow -->
  21.   <style>
  22.     .popover {
  23.       width: 200px;
  24.     }
  25.   </style>
  26.  
  27.   <!-- About popover -->
  28.   <div class="popover popover-about">
  29.     <div class="popover-angle"></div>
  30.     <div class="popover-inner">
  31.       <div class="content-block">
  32.         <p>About</p>
  33.         <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ac diam ac quam euismod porta vel a nunc. Quisque sodales scelerisque est, at porta justo cursus ac.</p>
  34.       </div>
  35.     </div>
  36.   </div>
  37.  
  38.   <!-- Links popover -->
  39.   <div class="popover popover-links">
  40.     <div class="popover-angle"></div>
  41.     <div class="popover-inner">
  42.       <div class="list-block">
  43.         <ul>
  44.           <li><a href="#" class="list-button item-link">Link 1</a></li>
  45.           <li><a href="#" class="list-button item-link">Link 2</a></li>
  46.           <li><a href="#" class="list-button item-link">Link 3</a></li>
  47.           <li><a href="#" class="list-button item-link">Link 4</a></li>
  48.         </ul>
  49.       </div>
  50.     </div>
  51.   </div>
  52. </body>
复制

实例预览

使用 JavaScript

我们也可以用使用JavaScript来打开和关闭 Popover ,因此我们需要看一下相关的App方法:

myApp.popover(popover, target) -  在 目标 元素附近打开 Popover

  • popover - 需要打开的popover的HTML元素 或者 字符串 ( CSS 选择器). 必需
  • target - popover需要围绕的元素(定位元素)HTML元素 或者 字符串 ( CSS 选择器). 必需
  • 这个方法返回 Popover的 HTML元素

myApp.closeModal(popover) - 关闭 Popover

  • popover - HTMLElement or string (CSS 选择器). 可选. 如果你没有指定,则所有被打开的都将被关闭

Popover 位置

当我们使用 JavaScript 打开popover ,我们需要通过 target 元素去设定 popover 所围绕的目标元素.

  1. <body>
  2.   ...
  3.   <div class="navbar">
  4.     <div class="navbar-inner">
  5.       <div class="left"><a href="#" class="link open-about">About</a></div>
  6.       <div class="center">Popover</div>
  7.       <div class="right"><a href="#" class="link open-about">Links</a></div>
  8.     </div>
  9.   </div>
  10.   <div class="page-content">
  11.     <div class="content-block">
  12.       <p><a href="#" class="open-about">Open About Popover</a></p>
  13.       <p><a href="#" class="open-links">Open Links Popover</a></p>
  14.       <p>Praesent urna mi, sodales ac dolor vitae, dictum mattis sem. Mauris a dui faucibus, condimentum arcu quis, porta felis. Sed at metus arcu. Maecenas sodales tellus risus, id <a href="#" class="open-about">About</a> nibh iaculis quis. Suspendisse dignissim ante lobortis, molestie nibh id, pharetra risus. Proin blandit neque nec nibh scelerisque, eu vulputate ipsum malesuada. Phasellus sapien diam, fermentum eget ornare in, <a href="#" class="open-links">Links</a> rutrum vel justo. Integer accumsan posuere quam.</p>
  15.     </div>
  16.   </div>
  17.   ...
  18.   <div class="popover popover-about">
  19.     ...
  20.   </div>
  21.   <div class="popover popover-links">
  22.     ...
  23.   </div>
  24. </body>
复制
  1. var myApp = new Framework7();
  2.  
  3. var $$ = Dom7;
  4.  
  5. // Open About popover
  6. $$('.open-about').on('click', function () {
  7.     var clickedLink = this;
  8.     myApp.popover('.popover-about', clickedLink);
  9. });
  10.  
  11. // Open Links popover
  12. $$('.open-links').on('click', function () {
  13.     var clickedLink = this;
  14.     myApp.popover('.popover-links', clickedLink);
  15. });
复制

实例预览

动态的 Popover

Framework7允许你把HTML内容传给相关的App方法来动态地创建 Popover:

myApp.popover(popoverHTML, target, removeOnClose) - 使用 popoverHTML 内容在 target 元素附近打开popover

  • popoverHTML - string. popover 的HTML 字符串
  • target - HTMLElement or string ( CSS 选择器) 设置 popover 位置所围绕的目标元素. 必需
  • removeOnClose - boolean. 可选, 默认值 - true. 如果是 true, 那么 Popover 在关闭时将从DOM中移除
  • 该方法返回动态创建的 Popover的 HTML结构
  1. <body>
  2.   ...
  3.   <div class="navbar">
  4.     <div class="navbar-inner">
  5.       <div class="left"><a href="#" class="link create-about">About</a></div>
  6.       <div class="center">Popover</div>
  7.       <div class="right"><a href="#" class="link create-links">Links</a></div>
  8.     </div>
  9.   </div>
  10.   <div class="page-content">
  11.     <div class="content-block">
  12.       <p><a href="#" class="create-about">Create About Popover</a></p>
  13.       <p><a href="#" class="create-links">Create Links Popover</a></p>
  14.       <p>Praesent urna mi, sodales ac dolor vitae, dictum mattis sem. Mauris a dui faucibus, condimentum arcu quis, porta felis. Sed at metus arcu. Maecenas sodales tellus risus, id <a href="#" class="create-about">About</a> nibh iaculis quis. Suspendisse dignissim ante lobortis, molestie nibh id, pharetra risus. Proin blandit neque nec nibh scelerisque, eu vulputate ipsum malesuada. Phasellus sapien diam, fermentum eget ornare in, <a href="#" class="create-links">Links</a> rutrum vel justo. Integer accumsan posuere quam.</p>
  15.     </div>
  16.   </div>
  17.   ...
  18. </body>
复制
  1. var myApp = new Framework7();
  2.  
  3. var $$ = Dom7;
  4.  
  5. $$('.create-about').on('click', function () {
  6.   var clickedLink = this;
  7.   var popoverHTML = '<div class="popover">'+
  8.                       '<div class="popover-inner">'+
  9.                         '<div class="content-block">'+
  10.                           '<p>About Popover created dynamically.</p>'+
  11.                           '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque ac diam ac quam euismod porta vel a nunc. Quisque sodales scelerisque est, at porta justo cursus ac.</p>'+
  12.                         '</div>'+
  13.                       '</div>'+
  14.                     '</div>'
  15.   myApp.popover(popoverHTML, clickedLink);
  16. });
  17.  
  18. $$('.create-links').on('click', function () {
  19.   var clickedLink = this;
  20.   var popoverHTML = '<div class="popover">'+
  21.                       '<div class="popover-inner">'+
  22.                         '<div class="list-block">'+
  23.                           '<ul>'+
  24.                           '<li><a href="#" class="item-link list-button">Link 1</li>'+
  25.                           '<li><a href="#" class="item-link list-button">Link 2</li>'+
  26.                           '<li><a href="#" class="item-link list-button">Link 3</li>'+
  27.                           '</ul>'+
  28.                         '</div>'+
  29.                       '</div>'+
  30.                     '</div>'
  31.   myApp.popover(popoverHTML, clickedLink);
  32. });
复制

实例预览

Popover 事件

Popover 和任意 Modal拥有一样的事件

Event(事件) Target(目标) Description(描述)
open Popover Element<div class="popover"> 当 Popover 开始打开动画时,事件将被触发。
opened Popover Element<div class="popover"> 当 Popover 完成打开动画时,事件将被触发。
close Popover Element<div class="popover"> 当 Popover 开始结束动画时,事件将被触发。
closed Popover Element<div class="popover"> 当 Popover 完成结束动画后,事件将被触发。
0
0
分享到:
评论
发表评论

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

相关推荐

    jquery弹出悬浮插件webui-popover.zip

    在网页开发中,为了提供更好的用户体验,工具提示(Tooltip)和弹出悬浮窗是不可或缺的元素。jQuery弹出悬浮插件WebUI-Popover就是这样一款轻量级的解决方案,它为开发者提供了便捷的方式来创建功能丰富的提示和弹出...

    气泡弹窗.popover

    - 在Web开发中,可以使用HTML、CSS和JavaScript实现,如Bootstrap框架提供了Popover插件。 - 在移动端,特别是微信小程序(WeApp)中,可以使用wx.createSelectorQuery()来获取元素位置,然后动态计算Popover的...

    ios-IOS中封装Popover-Swift.zip

    在iOS应用开发中,Popover(弹出视图)是一种常见的用户界面元素,它可以在屏幕上以一个半透明的矩形窗口形式展示内容,通常用于显示详细信息或者提供一系列选择。Swift作为苹果公司推荐的iOS开发语言,封装Popover...

    react-native-popover, 用于响应本机的<Popover/> 组件.zip

    react-native-popover, 用于响应本机的&lt;Popover/&gt; 组件 react-native-popover 用于响应本机的&lt;Popover&gt; 组件。 这仍然是一个正在进行中的工作,只处理最简单的情况,想法和贡献是非常受欢迎的。 安装npm i --save ...

    PyPI 官网下载 | gtk-recurrence-popover-4.0.0.tar.gz

    gtk-recurrence-popover是一个基于GTK+框架的库,专为处理日历事件的周期性或重复显示而设计。GTK+(GIMP Toolkit)是一个跨平台的图形用户界面工具包,广泛用于Linux和其他类Unix系统,以及Windows和macOS。在gtk-...

    Python库 | gtk-recurrence-popover-1.0.0.tar.gz

    《Python库:gtk-recurrence-popover-1.0.0》 在信息技术领域,Python作为一门...在实际开发过程中,不断探索和学习新的库是提升工作效率的关键,而gtk-recurrence-popover正是这样一把利器,等待开发者去发掘和运用。

    前端项目-ns-popover.zip

    在前端开发领域,AngularJS作为一个强大的MVC框架,被广泛用于构建复杂的单页应用。本项目“ns-popover”是针对AngularJS设计的一个弹出框指令,旨在为用户提供高效、灵活的气泡提示功能。本文将深入探讨ns-popover...

    react-popover:一个用于React的智能popover组件

    react-popover &gt;= 0.5.0支持React 16,而react-popover &lt; 0.5.0适用于React 15.xx ,可能更低。 目前尚无计划使用向后移植的修补程序来支持该库的较早版本,并且不欢迎为此目的使用PR,因为这会增加作者的维护...

    jquery弹出悬浮插件webui-popover特效源码.zip

    总的来说,jQuery弹出悬浮插件WebUI-Popover以其强大的功能和易用性,成为网页开发中不可或缺的工具。通过深入理解其工作原理和使用方法,开发者能够更高效地创建出富有吸引力和用户体验良好的网页应用。无论你是...

    react-native-popover-view:经过测试,适应性强,轻量级本机组件

    经过测试并可以在iOS和Android上使用。 可以在Web上运行,但不受官方支持。 它完全用TypeScript编写,但是即使JS线程很忙,它也使用来响应动画。 &lt;Popover&gt;能够处理动态内容并在显示时适应屏幕尺寸的变化,并且会...

    Android-PopoverView-一个模仿iOSUIPopoverController效果的控件

    PopoverView是Android平台上的一个自定义控件,它旨在实现类似iOS中的UIPopoverController的效果。在iOS中,UIPopoverController用于展示一个大型视图,通常用作其他小视图的操作选择器,它会以一种优雅的方式从指定...

    swift-ReactNative:原生Popover菜单

    在iOS应用开发中,Swift和React Native是两种广泛使用的编程语言和框架。Swift是Apple官方推出的用于构建iOS、iPadOS、macOS等平台应用程序的编程语言,而React Native则是Facebook开发的一个开源框架,允许开发者...

    react-native-simple-popover:React Native的简单动态弹出窗口

    React本机简单弹出 react-native-simple-popover提供了一个简单的popover实现,并支持自动popover放置。安装 $ npm install react-native-simple-popover该软件包不提供本机模块,不需要链接和重建应用程序。原料药...

    react-popover:完全控制的Popover组件

    React简单的弹出窗口基于完全控制的Popover组件。 安装 $ npm install react-simple-popover用法import Popover from 'react-simple-popover' ;import React , { Component } from 'react' ;class PopoverDemo ...

    Angular-popover.zip

    Angular-popover.zip,角cdk弹出,无默认样式,使用@angular/materialmaterial扩展用于角弹出的示例,...它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计目的是全面解决开发人员的web应用程序工作流。

    vue-js-popover:Vue.js 2用于下拉菜单弹出库的工具提示

    import Popover from 'vue-js-popover' Vue . use ( Popover ) 用: &lt; button v-popover:foo &gt;Toggle popover&lt;/ button &gt; &lt; popover xss=removed&gt; Hello &lt;/ popover&gt; 或者: &lt; button v-popover...

    react-native-modal-popover:使用Modal的React-Native纯JS popover

    纯JS popover组件,用于本机 关于本模块 原始的现在已过时,因此我决定发布自己的模块,以避免在package.json中使用github url。 在重写过程中有些东西丢失了,但是现在它使用了Modal和本机动画驱动程序,并且还具有...

    (0108)-iOS/iPhone/iPAD/iPod源代码-日历(Calendar)-Popover Calendar

    7. **布局管理**: 为了适应不同尺寸的屏幕,如iPhone和iPad,开发者可能使用Auto Layout或Size Classes来确保视图在不同设备上正确布局。 通过研究这个项目,开发者不仅可以学习到如何创建一个弹出式的日历视图,还...

    ngx-popover:使用bootstrap3为您的angular2应用程序提供简单的弹出控件。 不依赖于jQuery

    安装安装npm模块: npm install ngx-popover --save 如果您使用的是system.js,则可能要将其添加到map和package config中: { " map " : { " ngx-popover " : " node_modules/ngx-popover " }, " packages " : { " ...

Global site tag (gtag.js) - Google Analytics