jQuery Mobile组件:工具栏

工具栏(Toolbar)一般用于header,footer和utility bar,他们遍及一个移动
首页 新闻资讯 行业资讯 jQuery Mobile组件:工具栏

Toolbar 类型

在jQuery Mobile中, 有两种标准类型的工具栏: Headers 和 Footers.

Header bar 充当页面标题的作用, 通常是 mobile page中的第一个元素,一般包含有一个页面标题和两个按钮。

Footer bar 通常是最后一个元素,相比于header在内容和功能上面更加自由, 但是一般包含一些文字和按钮。

在header/footer中一个水平的导航栏或者tab页是非常常见的;jQuery Mobile包含了 导航条部件  ,该部件能将一个无序列表(ul)链接变成一个水平分布的按钮栏。 /p>

Toolbar 位置选项

Header 和 footers 可以用不同方式调整他们在页面中的位置。默认情况下,toolbar 会使用"inline" positioning 模式  ,该模式中,header 和footer 会位于自然文档流中(即默认的HTML行为),这样可以确保它们在所有的设备中可见  (不管设备是否支持JavaScript和css)。

"fixed" positioning 模式提供了一个无视人为滚动页面保持固定位置的  toolbar,toolbar会像"inline"模式一样出现在它们在页面中原始的位置,但是你滚动滚动条使toolbar离开视线时,  框架会通过动态重新调整toolbar的位置好让toolbar以动画的效果重新出现在当前浏览器视口的顶部或者底部。

在任何时候,轻按屏幕会切换固定工具栏的可视性:轻按一次显示,再按一次隐藏。 这使用户可以选择隐藏工具栏, 来使得屏幕显示的内容更多。

要为header或footer设置此行为,为toolbar的容器添加 data-position="fixed" 属性。

"fullscreen" position 模式 和固定模式一样, 但是不会在顶部和底部出现,除非你点击页面。  在创建沉浸式应用时(如照片或视频浏览器)非常有用,你可以全屏浏览,  而toolbar会在你需要时轻触屏幕来呗唤出。请记住,在这种模式下,toolbar出现时会覆盖页面内容,因此最好是在特定情况下使用此模式。#p#

头结构

header通常是页面顶部包含页面标题文字和可选按钮以及定位到左侧和/或右导航的工具条。

标题文本通常是一个H1标题元素,但它可以使用任何级别的标题(H1 - H6)的,以体现语义的灵活性。 例如,一个页面包含多个 'page  '时,可以使用H1表示的‘首页’的标题,H2元素表示二级‘页面’的标题。 默认情况下所有标题级别是相同的风格,以保持视觉上的一致性。

复制

<div data-role="header"> <h1>页面标题</h1> </div>
  • 1.

  • 2.

  • 3.

默认 header 的特性

header工具栏默认被设置为'a'主题调板(黑色),但是你可以方便的 设置主题调板.

Back页面标题

看到 "back" 按钮没?框架会自动在每个页面生成该按钮, 以简化创建通用导航条的过程,要阻止header中自动添加该按钮,你可以自行在左边添加按钮  或者为header容器添加 data-backbtn="false" 属性。

添加按钮

在标准header配置中,文本旁边有很多位置可供添加按钮。每个按钮通常都是一个 a标签,但是任何可用的按钮标签都可以添加。  为了节省空间,在工具栏中按钮被设置为inline styling , 所以按钮的宽度会和它所包含了文本、按钮所匹配。

创建自定义后退按钮

如果你对a标记使用data-rel="back"属性,任何在此a上的点击都会模拟后退按钮,  和浏览器的历史按钮一样,并会忽略a标记本身的href。当链接到一个已有页面,比如“主页”,  或者生成后退按钮时或者一个按钮来关闭一个对话框时,该属性十分有用。当在你的源文件中使用此特性时,  请确保提供一个有意义的href来指向引用页的URL(这样才能使得用户在C级浏览器中也能使用该特性)。  同样的,请记住如果你只是想要一个反向过渡而并不实际回到上一页,你应该使用data-direction="reverse"属性来替代。

默认按钮定位

header插件会寻找header容器的直接子元素,并自动设置第一个链接在左边的位置,第二个链接在右边。  在以下的例子中,“取消”按钮会出现在左边而“保存”会出现在右边。

复制

<div data-role="header" data-position="inline"> <a href="index.html" data-icon="delete">取消</a> <h1>Edit Contact</h1> <a href="index.html" data-icon="check">保存</a> </div>
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

按钮会自动适应按钮所在工具栏的调板颜色,所以在一个调板为“a”的header bar里一个按钮也会被设置为“a”, 除非你单独设置按钮的  data-theme属性为其他值(例如b)。

复制

<div data-role="header" data-position="inline"> <a href="index.html" data-icon="delete">Cancel</a> <h1>Edit Contact</h1> <a href="index.html" data-icon="check" data-theme="b">Save</a> </div>
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

用class控制按钮的位置

按钮位置同样可以用class而不是源代码的顺序来控制。当你想按钮只在右边时就非常有用。为a标记添加ui-btn-left 或者ui-btn-right  class来指定按钮的位置。

在以下例子中,我们只在右边添加了一个按钮,所以必须要添加 data-backbtn="false"  来防止出现后退按钮,而右边的按钮则需要添加ui-btn-right class 。

复制

<div data-role="header" data-position="inline" data-backbtn="false"> <h1>页面标题</h1> <a href="index.html" data-icon="gear" class="ui-btn-right">选项</a> </div>
  • 1.

  • 2.

  • 3.

  • 4.

自定义后退按钮的文本

 

如果您想配置后退按钮的文本,您可以使用 data-back-btn-text="previous" 属性,  或者以编程方式设置插件的选项:$.mobile.page.prototype.options.backBtnText =  "previous";。如果你采用编程方式,请在mobileinit事件的处理程序中设置该选项。

自定义 header配置

如果你要创建一个自定义的header,将你自己的标记包裹在一个 div容器中(在header容器中),  插件不会应用自动按钮逻辑,所以你可以编写自定义样式来布局你的header内容。#p#

Footer 结构

footer 和 header的基本机构相同,除了它使用data-role="footer"来定义。

复制

<div data-role="footer">      <h4>Footer content</h4>  </div>
  • 1.

  • 2.

  • 3.

footer工具栏默认会被设置为"a"调板(黑色),但是你可以轻松的更改。

Footer content

在配置方面footer和header也非常相似,主要的区别是footer被设计为更轻便的结构来实现更灵活的配置,  所以框架不会像在header中那样自动排列按钮。

添加按钮

任何连接或者合法的按钮标记都可以添加到footer中并呗自动转变成一个按钮。 为了节省空间,工具栏中的按钮会自动被设置inline styling  ,让按钮宽度能适应其内容。

默认情况下,工具栏没有任何空白(padding)位置来填充导航条和其他小部件,要使工具栏包含空白,添加class="ui-bar" 。

复制

  <div data-role="footer" class="ui-bar">     <a href="index.html" data-role="button" data-icon="delete">Remove</a>     <a href="index.html" data-role="button" data-icon="plus">Add</a>     <a href="index.html" data-role="button" data-icon="arrow-u">Up</a>     <a href="index.html" data-role="button" data-icon="arrow-d">Down</a> </div>
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

以下会创建一行包含按钮的工具栏

要为按钮分组的话请将连接包裹在一个wrapper(通常是div)中并为其添加 data-role="controlgroup" 和  data-type="horizontal" 属性。

复制

<div data-role="controlgroup" data-type="horizontal">
  • 1.

 

以下创建了一组按钮集:

Remove Add Up Down

添加表单元素

表单元素和其他内容也可以添加到工具栏里面,以下是一个选择菜单的例子(select元素):

Shipping: Standard: 7 day Standard: 7 day Rush: 3 days Express: next day  Overnight

固定footer

在某些情况下 footer会作为全局导航元素存在,你可以需要footer在页面过渡和切换时也出现在固定的位置, 而这一特性jQuery  Mobile也提供了支持。

要实现footer的固定,你可以为所有相关页面的footer添加一个 data-id 属性并使用相同的  code>id值。例如,为当前页和目标页添加一个data-id="myfooter" 属性后,  框架会在页面切换动画发生时自动保持footer元素的位置。请注意:这一效果只有在footer/header 设置了data-position="fixed"  时才会起作用。#p#

navbar 示例

jQuery Mobile有一个非常基本的Navbar部件非常有用,它提供多达5个按钮和可选的图标,通常位于header/footer里面。

navbar通常是一个包裹在一个容器里的无序链接列表,容器设置data-role="navbar" 属性。  要设置其中一个链接是激活(被选择)的状态,为链接添加 class="ui-btn-active" 。  在下面这个例子中我们有一个位于footer中包含两个按钮的navbar,其中一个被设置为激活状态:

复制

<div data-role="footer">     <div data-role="navbar">         <ul>             <li><a href="a.html" class="ui-btn-active">One</a></li>             <li><a href="b.html">Two</a></li>         </ul>     </div><!-- /navbar --> </div><!-- /footer -->
  • 1.

  • 2.

  • 3.

  • 4.

  • 5.

  • 6.

  • 7.

  • 8.

#p#

固定工具栏会在你卷动后重新出现

这是一个jQuery Mobile框架里“fixed” header/footer的演示。滚动会导致header和footer消失,停止滚动时会再度出现,  任何时候轻触屏幕或者滑动屏幕都会使得工具栏重新出现或者消失。

该行为使用 data-position="fixed"属性来设置。

复制

<div data-role="header" data-position="fixed">     <h1>Fixed toolbars</h1> </div>
  • 1.

  • 2.

  • 3.

#p#

[[37221]]

这个页面演示了“全屏”工具栏模式。 这个工具栏是用来处理在特殊情况下, 你想用内容来填充整个屏幕,并且希望header和footer  工具栏在点击屏幕的时候出现或消失时所使用的模式 -- 通常适用于照片,图像或者视频浏览的情况。

要开启该特性,你需要将data-fullscreen="true" 添加到你的  page(data-role="page"的div)中,并且为header和footer容器(div) 同时添加data-position="fixed"  属性。

请记住,在这种模式下,如同demo展示的那样工具栏会覆盖页面内容,当工具栏可见时不是全部内容都能够看见的。#p#

header 和footer都可以被主题化(默认为a调板),因为在视觉上工具栏通常是页面的主要层级。

主题化 headers和footers

要设置主题依然和其他一样,使用data-theme属性。例如(b调板,蓝色):

复制

<div data-role="header" data-theme="b">      <h1>Page Title</h1>  </div>
  • 1.

  • 2.

  • 3.

设置工具栏中的button主题

任何工具栏里的button都会自动被设置为和工具栏一样的主题色,要额外设置也请使用data-theme 属性。、  例如我们为header设置的是“C”(亮灰)调板,则button也会变成“c”调板,要设置其他主题,请为button的a标签设置额外的  data-theme属性。

复制

<a href="add-user.php" data-theme="b">Save</a>
  • 1.

 

6    2011-07-21 16:10:48    jQuery Mobile 工具栏