jQuery UI

jQuery UI 是建立在 jQuery JavaScript 库上的一组用户界面交互、特效、小部件及主题。无论您是创建高度交互的 Web 应用程序还是仅仅向窗体控件添加一个日期选择器,jQuery UI 都是一个完美的选择。

jQuery UI 包含了许多维持状态的小部件(Widget),因此,它与典型的 jQuery 插件使用模式略有不同。所有的 jQuery UI 小部件(Widget)使用相同的模式,所以,只要您学会使用其中一个,您就知道如何使用其他的小部件(Widget)。

:::::::::::::::::::::::::::::::::::::::::::::::::

jQuery UI 简介

jQuery UI 是一个建立在 jQuery JavaScript 库上的小部件和交互库,您可以使用它创建高度交互的 Web 应用程序。

。。。。。。。。

jQuery UI 特性

简单易用:继承 jQuery 简易使用特性,提供高度抽象接口,短期改善网站易用性。

开源免费:采用 MIT & GPL 双协议授权,轻松满足自由产品至企业产品各种授权需求。

广泛兼容:兼容各主流桌面浏览器。包括IE 6+、Firefox 2+、Safari 3+、Opera 9+、Chrome 1+。

轻便快捷:组件间相对独立,可按需加载,避免浪费带宽拖慢网页打开速度。

标准先进:支持 WAI-ARIA,通过标准 XHTML 代码提供渐进增强,保证低端环境可访问性。

美观多变:提供近 20 种预设主题,并可自定义多达 60 项可配置样式规则,提供 24 种背景纹理选择。

开放公开:从结构规划到代码编写,全程开放,文档、代码、讨论,人人均可参与。

强力支持:Google 为发布代码提供 CDN 内容分发网络支持。

完整汉化:开发包内置包含中文在内的 40 多种语言包。

http:/ /www.iis7.com/b/wzjk/

缺点、不足:

1.代码不够健壮:缺乏全面的测试用例,部分组件 Bugs 较多,不能达到企业级产品开发要求。

2.构架规划不足:组件间 API 缺乏协调,缺乏配合使用帮助。

3.控件较少:相对于 Dojo、YUI、Ext JS 等成熟产品,可用控件较少,无法满足复杂界面功能要求。

:::::::::::::::::::::::::::::::::::::::::::::::::::

jQuery UI 下载

一旦您对 jQuery UI 有了基本了解,您就可以亲自尝试一下。请从 jQuery UI 网站上的 Download Builder(下载生成器) 页面下载 jQuery UI 的副本。

。。。。。。。。。

创建自定义 jQuery UI 下载

jQuery UI 的下载生成器(Download Builder)允许您选择您需要下载的组件,为项目获取一个自定义的库版本。创建自定义 jQuery UI 下载需要以下三个步骤:

步骤 1:选择您需要的组件

下载生成器(Download Builder)页面的第一栏列出了 jQuery UI 所有的 JavaScript 组件分类:核心(UI Core)、交互部件(Interactions)、小部件(Widgets)和效果库(Effects)。jQuery UI 中的一些组件依赖于其他组件,当选中这些组件时,它所依赖的其他组件也都会自动被选中。您所选的组件将会合并到一个 jQuery UI JavaScript 文件。

步骤 2:选择一个主题或者自定义一个主题

在下载生成器(Download Builder)页面,您将看到一个文本框,列出了一系列为 jQuery UI 小部件预先设计的主题。您可以从这些提供的主题中选择一个,也可以使用 ThemeRoller 自定义一个主题(详见后面章节的讲解)。

高级主题设置: 下载生成器(Download Builder)的主题部分也为主题提供了一些高级配置设置。如果您打算在一个页面上使用多个主题,这些字段会派上用场。如果您打算在一个页面上只使用一个主题,那么您完全可以跳过这些设置。

步骤 3:选择 jQuery UI 的版本

在下载生成器(Download Builder)中,最后一步是选择一个版本号。这个步骤很重要,因为 jQuery UI 的版本是配合特定的 jQuery 版本设计的。目前的版本有:

jQuery UI 1.10.2 – 要求 jQuery 1.6 及以上版本。

jQuery UI 1.9.2 – 要求 jQuery 1.6 及以上版本。

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

jQuery UI 使用

一旦您下载了 jQuery UI,您将得到一个 zip 压缩包,包含下列文件:

/css/

/development-bundle/

/js/

index.html

。。。。。。。。

在网页上使用 jQuery UI

在文本编辑器中打开 index.html,您将看到引用了一些外部文件:主题、jQuery 和 jQuery UI。通常情况下,您需要在页面中引用这三个文件,以便使用 jQuery UI 的窗体小部件和交互部件

一旦您引用了这些必要的文件,您就能向您的页面添加一些 jQuery 小部件。

:::::::::::::::::::::::::::::::::::::::::::::::::::::::

jQuery UI 定制

jQuery UI 提供了多种定制方式。您已经看到下载生成器(Download Builder)如何定制一个值包含您所需选项的自定义版本,这里还提供了其他定制方式。

。。。。。。。。

jQuery UI 基础:使用选项

jQuery UI 中的每个插件都有一个默认配置,默认配置值一般是根据最基本最常见的使用情况设置的。如果您想要让某个插件设置成非默认值,您可以使用 "options" 重写它的默认设置。选项是一组属性,作为参数传递给 jQuery UI 小部件。请记得选项需放在大括号 { } 内。

。。。。。。。。

视觉定制:设计一个 jQuery UI 主题

如果您想要设计自己的主题,jQuery UI 提供了一个非常完美的用于主题定制的应用程序,这就是 ThemeRoller。

ThemeRoller 为所有使用 jQuery UI 小部件设计的元素提供了一个自定义接口。当您调整左栏中的"levers",右栏中的小部件将根据您的设计进行显示。ThemeRoller 的 Gallery 选项卡提供了一些与设计主题,与下载生成器(Download Builder)页面提供的一样。您可以基于这些主题做调整,或者直接下载。

:::::::::::::::::::::::::::::::::::::::::::::::::::::

jQuery UI 工作原理

jQuery UI 包含了许多维持状态的小部件(Widget),因此,它与典型的 jQuery 插件使用模式略有不同。其安装方式与大部分 jQuery 插件的安装方式类似,jQuery UI 的小部件是基于 部件库(Widget Factory) 创建的,小部件库提供了通用的 API。所以,只要您学会使用其中一个,您就知道如何使用其他的小部件(Widget)。

。。。。。。。。

安装

为了跟踪部件的状态,我们首先介绍一下小部件的全生命周期。当小部件安装时,生命周期开始。我们只需要在一个或多个元素上调用插件,即安装了小部件。

。。。。。。。。

方法

既然小部件已经初始化,我们就可以查询它的状态,或者在小部件上执行动作。所有初始化后的动作都以方法调用的形式进行。为了在小部件上调用一个方法,我们可以向 jQuery 插件传递方法的名称。

。。。。。。。。

公共的方法,每个小部件都有它自己的一套基于小部件所提供功能的方法。然而,有一些方法是所有小部件都共同具有的。

option

disable,disable 方法禁用小部件,调用 disable 方法等同于设置 disabled 选项为 true。

enable,enable 方法是 disable 方法的对立面。,调用 enable 方法等同于设置 disabled 选项为 false。

如果您不再需要小部件,那么可以销毁它,返回到最初的标记。这意味着小部件生命周期的终止。

一旦您销毁了一个小部件,您就不能在该部件上调用任何方法,除非您再次初始化这个小部件。如果您要移除元素,可以直接通过 .remove(),也可以通过 .html() 或 .empty() 来实现,小部件会自动销毁。

widget,一些小部件生成包装器元素,或与原始元素断开连接的元素。

。。。。。。。。

事件,所有的小部件都有跟他们各种行为相关的事件,用于在状态改变时通知您。对于大多数的小部件,当事件被触发时,名称以小部件名称为前缀。

每个事件都有一个相对应的回调,作为选项进行呈现。

。。。。。。。。

公共的事件,大多数事件是针对特定的小部件,所有的小部件都有一个公共的 create 事件。该事件在小部件被创建时即被触发。

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

jQuery UI 主题

所有的 jQuery UI 插件都允许开发人员无缝集成 UI 小部件到他们网站或应用程序的外观和感观。每个插件通过 CSS 定义样式,且包含了两层样式信息:标准的 jQuery UI CSS 框架 样式和具体的插件样式。

jQuery UI CSS 框架提供了语义表示的类,用来表明小部件内元素的角色,比如标题、内容或可点击区域。这些在所有的小部件中都是一致的,一个可点击的 tab(标签页)、accordion(折叠面板)或 button(按钮)都有相同的 ui-state-default class,用来表明它们是可点击的。当用户鼠标悬浮在这些元素上面时,这个 class 就变成 ui-state-hover,当选中这些元素时则变成 ui-state-active。这些 class 的一致性使得所有部件中具有相似角色或交互状态的元素在外观表现上一致。

CSS 框架样式封装在一个单独的文件中,名为 ui.theme.css。这个文件时通过 ThemeRoller 应用程序来修改的。框架样式只包含影响外观和感观的属性,只要是颜色、背景图像、图标等。所以这些是 "安全的" 样式,不会影响到插件的功能。这种分隔意味着开发人员可以通过在 theme.css 文件中修改颜色和图像来创建一个自定义的外观和感观。由于未来的插件或者 bug 修复将是可用的,这些不通过修改即可与主题一起使用。

由于框架样式只覆盖了外观和感观,所以还需要包含具体的插件样式表,这些样式表包括了所有额外的让小部件具有功能性的结构样式规则,比如尺寸、内边距、外边距、定位、浮动。每个插件的样式表位于 themes/base 文件夹内,且配合插件进行命名,比如 "jquery.ui.accordion.css"。这些样式必须认真编辑,因为它们与脚本一起提供了框架样式的覆盖。

我们鼓励所有的开发人员创建 jQuery 插件,jQuery UI CSS 框架使得最终用户更容易定制主题和使用插件。

。。。。。。。。。

主题化

下面列出了三种主题化 jQuery UI 插件的一般方法:

1.下载 ThemeRoller 主题:最早的创建主题的方式是使用 ThemeRoller 来生成和下载一个主题。这个应用程序将创建一个新的 ui.theme.css 文件和一个包含了所有必需的背景图像及图标精灵的 images 文件夹。这个方法是最早的创建和维护主题的方式,但是它对 ThemeRoller 中提供的选项限制了自定义。

2.修改 CSS 文件:为了对外观和感观做进一步的控制,您可以选择从默认主题(Smoothness)开始,或者从一个由 ThemeRoller 生成的主题开始,然后调整 ui.theme.css 文件,或者任意一个独立插件的样式表。例如,您可以很容易地调整所有按钮的角半径为不同于其他 UI 组件的值,或者使用自定义设置为图标精灵改变路径。通过一点点的样式范围,您甚至可以在一个 UI 中同时使用多个主题。为了易于维护,建议只更改 ui.theme.css 文件和图像。

3.重新编写自定义的 CSS:为了最大程度地控制外观和感观,可以重新开始编写每个插件的 CSS,而不使用框架类或者特定的插件样式表。如果想要的外观和感观不能通过修改 CSS 来实现或者使用高度自定义的标记,那么就可以采用这个方法。这个方法要求在 CSS 方面有深厚的专业知识,且要求手动更新未来的插件。

。。。。。。。。。。

jQuery UI ThemeRoller

ThemeRoller 简介

ThemeRoller 是一个 Web 应用程序,为 jQuery UI 设计和下载自定义主题提供了直观的界面。您可以访问 jQuery UI ThemeRoller 进行主题定制。

jQuery UI ThemeRoller 是由波士顿的 Filament Group, Inc 设计和开发的。

。。。。。。。。。

ThemeRoller 界面

ThemeRoller 的界面分为不同面板,各面板分别是全局字体和圆角半径设置、小部件容器样式、可点击元素的互动状态,及覆盖和阴影的各种样式。这些面板允许配置各种 CSS 属性,比如字体尺寸、颜色、粗细、背景颜色和纹理、边框颜色、文本颜色、图标颜色、圆角半径,等等。

。。。。。。。。

主题馆(Gallery):预先设计主题

ThemeRoller 主题可以通过永久链接 URL 进行查看,它包含一些预先设计的主题可供选择。主题馆(Gallery)可以通过位于应用程序界面顶端的标签栏进行访问。从主题馆(Gallery)中,您可以预览和下载主题,甚至可以选择一个主题,然后切换到 "Roll Your Own" 标签页进行调整。

。。。。。。。。

下载主题

当您设计完主题后,您可以下载主题以便在项目中进行使用。ThemeRoller 在顶部有一个 "Download theme(下载主题)" 按钮,可以生成一个 zip 压缩包,包含了所有的主题相关文件。下载文件中的图像是按照您的规格进行生成的,并保存为高质量的 PNG 文件。

您的主题将包含图像和 CSS,组成了 jQuery UI CSS 框架的自定义版本,包含了所有插件的图像和 CSS。

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

jQuery UI CSS 框架 API

jQuery UI CSS 框架

jQuery UI 包含了一个强大的 CSS 框架,为了创建自定义 jQuery 小部件而设计的。框架包含了通用的用户界面所需的类,且可使用 jQuery UI ThemeRoller 进行维护。通过使用 jQuery UI CSS 框架创建您自己的 UI 组件。您需采用共享标记公约,以便在插件社区的代码集成。

。。。。。。。。。

框架类

下面的 CSS 类根据样式是否是固定的结构化的,或者是否是可主题化的(颜色、字体、背景等),分别定义在 ui.core.css 和 ui.theme.css 两个文件中。这些类被设计来用于用户界面元素,以便获得整个应用程序的视觉一致性,可通过 jQuery UI ThemeRoller 对组件进行主题化。

。。。。。。。。。

布局助手

.ui-helper-hidden:对元素应用 display: none。

.ui-helper-hidden-accessible:对元素应用访问隐藏(通过页面绝对定位)。

.ui-helper-reset:UI 元素的基本样式重置。重置的元素比如:padding、margin、text-decoration、list-style,等等。

.ui-helper-clearfix:对父元素应用浮动包装属性。

.ui-helper-zfix:对