参考网站:http://www.lampweb.org/jquerymobile/19/64.html

面板 data-role="panel"

在一个 jQuery Mobile “page”中,面板与“header”、“footer”、“content”,必须是兄弟元素。可以在它们之前或之后添加面板的标记,但不在它们中间添加。注:此约束将在未来的版本中删除。

<div data-role="page">
<div data-role="panel" id="mypanel">
<!-- panel content goes here -->
</div> <!-- /panel -->
<!-- header -->
<!-- content -->
<!-- footer -->

</div> <!-- page -->

另外,添加面板的标记在页眉、内容、页脚的后面,也可能正好是“page”容器结束符之前。在代码顺序中的放置面板标记的位置,将取决于,在C等级(仅HTML)或屏幕阅读器,你想要的如何给读者展示内容。

一个包含“panel”(面板)的“page”(页面),如果这个框架包含的标题,内容和页脚节在一个div,当以显示的模式"reveal"或"push"打开这个面板的时候,转场被应用于此容器。固定的页眉和页脚是个例外。那些不包括在此容器内的,但将与它的转场是同步的。注意你的所有可见的网页内容应该生活在这些页面部分。

为了避免打开面板时闪烁,我们迫使WebKit浏览器的硬件加速。如果容器有一个CSS多栏布局(列数),页面上的按钮表单元素,在CSS能引起的问题。要解决这个,必须在元素或其容器上,设置以下规则:
-webkit-transform: translate3d(0,0,0);

面板标记公约

面板的容器有个 data-role="panel" 属性 和 唯一的ID。此ID是链接或者按钮打开关闭面板的标识。

<div data-role="panel" id="mypanel">
<!-- panel content goes here -->
</div>

屏幕上的面板的位置设置使用 data-position 属性

  • data-position=“left”,是默认值,意味着它将在屏幕的左边缘出现。
  • data-position="right",它出现的右边缘。

面板的显示模式设置使用 data-display 属性

  • data-display=“reveal” ,默认值,将页面像幻灯片一样从屏幕划出,将面板显示出来
  • data-display="overlay",面板出现在页面内容顶部上层。
  • data-display="push",是同时“推动”的面板和页面。
<div data-role="panel" id="mypanel" data-position="right" data-display="push">
<!-- panel content goes here -->
</div>

动态内容

当面板打开在打开状态时,给面板动态地将内容或使面板隐藏内容可见,你必须在面板上触发 updatelayout 事件。

$( "#mypanel" ).trigger( "updatelayout" );

jquery mobile框架将检查面板内容的新高度,如果超过屏幕高度,设置页面为 min-height 能在屏幕高度下显示出来,并且新定位面板 data-position-fixed="true"

打开面板

  • 点击网页某个地方上的一个指向面板的链接。href 属性值是面板的 ID 值。点击它,打开面板,再次点击,关闭面板。
  • 通过调用面板的 open方法直接切换。
  • 默认在左侧显示面板。
<a href="#mypanel"> Open panel</a>
$( "#idofpanel" ).panel( "open" , optionsHash );

当使用标记来控制面板,一次只能打开一个单一的面板。点击下一个面板链接,上一个已经打开面板将自动关闭。这样做是为了保持标记只配置简单。

<!DOCTYPE html>
<html>
<head>
<title> Page Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/latest/jquery.mobile.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"> </script>
<script src="http://code.jquery.com/mobile/latest/jquery.mobile.min.js"> </script>
<style>
html, body { padding: 0; margin: 0; }
html, .ui-mobile, .ui-mobile body {
height: 435px;
}
.ui-mobile, .ui-mobile .ui-page {
min-height: 435px;
}
.ui-content{
padding:10px 15px 0px 15px;
}
.panel-content { padding:15px; }
</style>
</head>
<body>
<div data-role="page" style="max-height:440px; min-height:440px;">
<div data-role="header">
<h1> Panel Demo</h1>
</div>
<div data-role="content">
<a href="#defaultpanel" data-role="button" data-inline="true" data-icon="bars"> Default panel</a>
</div>
<!-- defaultpanel -->
<div data-role="panel" id="defaultpanel" data-theme="b"> <div class="panel-content">
<h3> Default panel options</h3>
<p> This panel has all the default options: positioned on the left with the reveal display mode. The panel markup is <em> before</em> the header, content and footer in the source order.</p>
<p> To close, click off the panel, swipe left or right, hit the Esc key, or use the button below:</p>
<a href="#demo-links" data-rel="close" data-role="button" data-theme="c" data-icon="delete" data-inline="true"> Close panel</a>
</div> <!-- /content wrapper for padding --> </div> <!-- /defaultpanel -->
</div>
</body>
</html>

关闭面板

  • 点击面板链接,打开面板,向左或向右滑出。敲击ESC键,关闭面板。取消此“关闭行为”,给面板加上 data-swipe-close="false" 属性。
  • 默认情况下,点击“page”之内,“panel”之外的内容部分,面板也可以关闭。为了防止这种行为,给面板加上 data-dismissible="false" 属性。
  • 面板和页面也可能肩并肩地并排在屏幕上。为了防止误点击,只有应用编程的方式。
  • 在面板内的添加关闭按钮也很常见。添加链接,将关闭面板,添加 data-rel="close" 属性。单击时,jqm框架关闭面板。为了确保这一环节正常运行,防止如果JavaScript不可用,是很重要的,因此超链接指向的页面的ID,这样当点击按钮的时候,将会跳回。
//使用面板的关闭方法来关闭面板
$( "#idofpanel" ).panel( "close" ); //点击头部栏中的按钮打开面板,头部栏ID值my-header。面板内的关闭按钮如下:
<a href="#my-header" data-rel="close">Close panel</a>

面板动画

如果浏览器支持3D变换,面板将有动画,同一标准的CSS动画支持我们使用的页面转换。面板的动画使用translateX CSS 变换以确保他们的硬件加速和光滑。

jQuery Mobile 框架有一个功能,试验检测所需的CSS属性支持,如果不可用,将回落到一个简单的隐藏/显示。经过彻底的测试,非动画面板的能力较差,因为没有起伏平台动画一个比一个简单的隐藏/显示更好的体验。

动画选项允许你关闭面板动画的所有设备。关闭动画通过给面板容器HTML标记,添加 data-animate="false" 属性。

打开面板时,使用硬件加速触发页面初始化期间来防止眨眼。因为这增加了内存的使用,如果你使用长的列表或脚本动态注入页面上的内容与动画面板,你必须意识到效率问题。

面板定位

面板的显示位置是CSS属性的绝对定位:position:absolute。这意味着面板将随着页面滚动。当一个面板是打开的状态的时候,jquery mobile 框架检查面板内容的底部是否在视图内,如果没有,面板滚动到页面顶部的。

你可以设置一个面板的位置:position:fixed,并给面板添加 data-position-fixed="true"属性,所以,无论你滚动页面多远,其内容都会显示。在固定定位前,jquery mobile 框架还检查是否面板的内容是否在视窗内。因为此属性将防止面板的内容从滚动和使用溢出不支持足够使用,在这个时候。如果面板内容太长,在视口内,框架将根本没有固定的定位显示面板。

在一般情况下,我们建议你把打开面板的按钮,放置在顶部。这将避免需要滚动,也使得过渡顺畅一点。

请注意,有固定的定位在Android WebView应用问题(而不是浏览器)会导致布局问题,尤其是当没有启用硬件加速。我们建议不如果部署到一个Android应用程序使用固定位置面板选项。同时,如果有一个固定在一个固定的网页的工具栏,工具栏可能不是过渡与页面内容。

面板的样式

默认情况下,面板有非常简单的方式让你定制自己的需要。面板基本上只是简单的块无 margin,坐在一边的网页内容。该框架将面板的内容包含在一个div容器内,其CSS为ui-pannel-inner类,padding是15像素。如果需要,您可以重写此自定义CSS或使用选项classes.panelinner为div设置不同的类名称。

当打开面板时,面板有一个固定的宽度17em(272px),足以显示一些页面内容,在较宽的平板电脑或桌面屏幕,看起来还是不错的。给面板设置样式宽度是相当复杂的,但根据需要这些可以被重写CSS。

注意:直接给面板容器添加 padding, borders, or margins 将改变整体尺寸,也可能导致的定位和动画的影响。为了避免这种情况,给面板内容容器应用样式(.ui-pannel-inner)。

除了主题背景,宽度和高度100%样式,面板有对自己很小的造型。面板的默认主题是“C”。你可以通过面板容器添加 data-theme 的面板上设置一个不同的主题,或设置data-theme="none"添加您自己的CSS类样式。

这个框架使用用于网页内容容器的主题。打开一个面板,显示模式reveal 或者 push,网页的主题将被设置为所使用的面板相同的主题。这样做是为了掩盖大部分移动浏览器还没有完成的画面板背景动画,打开它已经开始了时。如果你使用一个背景图像的网页,你必须将它设置为ui-body-* CSS类的主题,给你使用的页面,它将被用来作为背景的内容容器。

设置面板的响应

当推或揭示显示用面板,将页面一边打开时。因为有些页面是推画外,面板是模态的,必须关闭,再次与页面内容的互动。在更大的屏幕,可能有你想要的工作更像是一个可折叠的塔板,可以打开和一起使用的页面更好地利用屏幕房地产。

使页面一起工作,打开面板,它需要再流到一个窄的宽度以适合旁边的面板。这可以通过纯CSS添加一个左或右边缘与面板的宽度(17em)对网页内容的再流力。第二,看不见的层放置在页面上点击了解雇行为是隐藏的CSS你可以点击页面而不是关闭菜单。

这里是这些规则的一个例子,包裹在一个媒体查询仅适用于本以上的行为35em(560px):

@media (min-width:35em) {
/* wrap on wide viewports once open */
.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push.ui-panel-content-fixed-toolbar-position-left,
.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal.ui-panel-content-fixed-toolbar-position-left,
.ui-page-panel-open .ui-panel-content-wrap-display-push.ui-panel-content-wrap-position-left,
.ui-page-panel-open .ui-panel-content-wrap-display-reveal.ui-panel-content-wrap-position-left {
margin-right: 17em;
}
.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push.ui-panel-content-fixed-toolbar-position-right,
.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal.ui-panel-content-fixed-toolbar-position-right,
.ui-page-panel-open .ui-panel-content-wrap-display-push.ui-panel-content-wrap-position-right,
.ui-page-panel-open .ui-panel-content-wrap-display-reveal.ui-panel-content-wrap-position-right {
margin-left: 17em;
}
.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-push,
.ui-page-panel-open .ui-panel-content-fixed-toolbar-display-reveal {
width: auto;
}
/* disable "dismiss" on wide viewports */
.ui-panel-dismiss {
display: none;
}
/* same as the above but for panels with display mode "push" only */
.ui-panel-dismiss-display-push {
display: none;
}
}

应用预设断点

中包含的控件类型是一个断点,这种行为预设,踢在55em(880px)。此断点不是默认应用于使你编写自定义的断点,最适合你的内容和设计更容易。应用断点的预设,添加 ui-responsive-panel 类网页包装器(不是面板)。

jQuery Mobile panel的相关属性的更多相关文章

  1. 使用JQuery Mobile实现手机新闻浏览器

    jQuery Mobile项目是jQuery项目下的在移动开发方面的又一力作,在本文中,笔者将带你一步步更深入学习使用jQuery Mobile框架去实现一个能在android手机上运行的新闻浏览器, ...

  2. JQuery Mobile页面的载入方式

    1.JQM页面结构 jQuery Mobile是通过data-role属性来区分渲染界面样式的,JQM里面提供的data-role如下表: 参数 说明 page 页面容器,其内部的mobile元素将会 ...

  3. jQuery Mobile Data 属性

    按钮 带有 data-role="button" 的超链接.button 元素.工具栏中的链接以及 input 字段都会自动渲染成按钮样式,不需要添加 data-role=&quo ...

  4. Jquery mobile div常用属性

    组件 页面 jQuery Mobile 应用了 HTML5 标准的特性,在结构化的页面中完整的页面结构分为 header. content.footer 这三个主要区域. 在 body 中插入内容块: ...

  5. jQuery Mobile学习笔记

    1.获取jQuery mobile 文件,访问jQuerymobile网站下载 (貌似使用jquery mobile后,jquery会自动在网页中添加一些class类,第一次知道的我是被吓呆的!!) ...

  6. jQuery Mobile 列表内容

    jQuery Mobile 列表缩略图 对于大于 16x16px 的图像,请在链接中添加 <img> 元素. jQuery Mobile 将自动把图像调整至 80x80px: 实例: &l ...

  7. Jquery Mobile 小结

    第一次做一个移动站点,当时纠结选Jquery Mobile还是Zepto,Zepto相对于JM更加轻巧,语法上面也很相似,但考虑到时间问题和JM自带了很多组件(Bootstrap惯出来的),还是选择了 ...

  8. 【初探移动前端开发05】jQuery Mobile (下)

    前言 继续我们移动端的学习,今天到了List相关了. 本文例子请使用手机查看 List列表 在移动设备平台下,由于移动设备屏幕比较小,我们又是用手在上面点击的触屏方式,传统的列表模式在手机上就不太友好 ...

  9. 经典收藏 50个jQuery Mobile开发技巧集萃

    http://www.cnblogs.com/chu888chu888/archive/2011/11/10/2244181.html 1.Backbone移动实例 这是在Safari中运行的一款Ba ...

随机推荐

  1. 激活modelsim se 10.4 时运行patch_dll.bat不能生成TXT

    问题描述: 激活modelsim时运行patch_dll.bat总是在DOS界面一闪而过,不能生成LICENSE.TXT 问题解决: 先取消文件 mgls64.dll 的只读属性(这句话在README ...

  2. Effective C++:条款22:将成员变量声明为private

    (一)为什么不採用public成员变量 (1)首先,从语法一致性考虑,客户唯一能訪问对象的方法就是通过成员函数,客户不必考虑是否该记住使用小括号(). (2)其次,使用函数能够让我们对成员变量的处理有 ...

  3. cpu分析简介

    进程占用CPU过高,一般有以下两种原因:          1.    业务量过大导致进程处理负荷高,占用CPU资源:2.    程序BUG导致,比如死循环:    初步查看cpu占用情况top进一步 ...

  4. Office Web Apps Server 2013与PDF(一)

    好吧--这个消息有点旧,迟了将近4个月. Office Web Apps是微软各大服务产品系列中的一个基础服务,可以为SharePoint 2013.Exchange 2013.Lync 2013提供 ...

  5. LeetCode递归 -2(Recursion) 培训专题 讲解文章翻译 (附链接) (2019-04-09 15:50)

    递归 - 空间复杂度  在本文中, 我们将讨论如何分析递归算法的空间复杂度. 在计算递归算法的空间复杂度时,最需要考虑的两个部分就是: 递归相关空间 (recursion related space) ...

  6. Sping 的 BeanFactory 容器

    Sping 的 BeanFactory 容器 这是一个最简单的容器,它主要的功能是为依赖注入 (DI) 提供支持,这个容器接口在 org.springframework.beans.factory.B ...

  7. JavaScript 是脚本语言

    JavaScript 是一种轻量级的编程语言. JavaScript 是可插入 HTML 页面的编程代码. JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行. JavaScrip ...

  8. arm-linux字符设备驱动开发之---简单字符设备驱动

    一.linux系统将设备分为3类:字符设备.块设备.网络设备.使用驱动程序: 1.字符设备:是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据.字符设备是面 ...

  9. go语言调用cmd

    package main import ( "fmt" "os/exec" ) func main() { //删除C:\Users\Administrator ...

  10. nth-child 和 nth-of-type 的区别

    css3中有两个新的选择器可以选择父元素下对应的子元素,一个是:nth-child 另一个是:nth-of-type,它们2个的区别是: nth-of-type为什么要叫:nth-of-type?因为 ...