Ajax 改造,第 2 部分: 使用 jQuery、Ajax、工具提示和 lightbox 改进现有站点

告别PlatformIO!用Arduino IDE搞定ESP32上的micro-ROS 2.0.5(Humble版) 本文详细介绍了如何从PlatformIO迁移到Arduino IDE以支持ESP32上的micro-ROS 2.0.5(Humble版)。内容涵盖环境配置、项目转换、常见问题解决及高级优化技巧,帮助开发者顺利过渡并充分利用Arduino IDE的官方支持优势。 阅读详情
Ajax 技术改变了大型商业 Web 应用程序的外观,但是许多较小的 Web 站点都不拥有重新构建整个用户界面(UI)的资源。Ajax 的一些新特性能够解决实际中的界面问题并改善用户体验。通过本系列文章,您可以了解如何使用开源客户端库让您的用户界面变得更为时尚。本文将展示如何使用 简单的 lightbox 和工具提示技术消除弹出窗口和导航死角。在实现的过程中坚持渐进增强(progressive enhancement)原理,确保增强后的 UI 特性不损害站点的可访问性,确保站点严格遵守 Web 标准。

关于本文

本文将逐步引导您使用 Ajax 技术改进一个 Web 1.0 购物站点。您可以下载改进 “之前” 和 “之后” 的示例应用程序源代码,也可以在作者的 Web 服务器上看到运行的两个版本。除了 Ajax 技术和最佳实践之外,您还将了解到 Ajax 如何通过 渐进增强 原理改善用户体验。

本文假设您已经牢固掌握 HTML 和 CSS,基本了解 JavaScript 和 Ajax 编程技术。示例应用程序仅使用客户端代码构建;本文演示的技术适用于任何服务器端应用程序框架。要运行示例站点,至少需要一个在本地主机上运行的基本 Web 服务器。此外,您也可以仅跟随源代码在我的 Web 服务器上查看运行中的示例站点。





回页首


重温“Ajax 改造,第 1 部分”

本系列的 第 1 部分 介绍了示例应用程序 Customize Me Now,并开始将它从 Web 1.0 版本改造成受 Ajax 支持的 Web 2.0 版本。该部分从业务和可用性方面讨论了这样做的必要性。此外,也定义了 渐进增强 并介绍了渐进增强原理如何改进用户体验。它还帮助您设置了几个开源工具:jQuery JavaScript 框架和几个插件,包括 ThickBox、jQuery Forms、jTip 和 GreyBox。使用 ThickBox 和 jQuery Forms 可以流线化用户流,将导航弯路转变成了模式对话框。但这仅仅是改进的一部分。现在,您可以使用 jTip 和 GreyBox 进一步优化站点。全部完成后,查看示例应用程序改进“之前”和“之后”的版本并回顾改进的过程。

developerWorks Ajax 资源中心
请访问 Ajax 资源中心,这里几乎囊括了关于 Ajax 编程模型的所有信息,包括各种文章、教程、论坛、blog、wikis、活动和新闻。

使用 jTip 将弹出窗口转换成工具提示

现在已经回顾了第 1 部分中的模式对象的实现,接下来将通过 jTip 把所有弹出窗口转换成工具提示以优化导航。就像 ThickBox 一样,jTip 很容易实现。对于每一个想要转换的链接,只需添加如下属性:

  • “jTip”的 class 属性。这个神奇的词语会警告 jTip 的 Document Object Model (DOM)-解析例程应该把此链接转换成工具提示。即使此链接元素已经具有 class 属性,也可以简单地将“jTip”添加为额外的类。
  • 针对每个链接,id 属性具有惟一的值,以便 jTip 能够获得该链接的对象引用。id 的值是什么并不重要,只要存在即可。
  • name 属性,jTip 使用它在工具提示内呈现标题。同样,只要属性存在,它的值是什么并不重要。如果不想让标题出现,只需将值设置为空字符串。

将这些属性添加到标记之后,每个弹出链接如清单 1 所示:


清单 1. jTip 链接所需的 HTML 代码
                

<a class="jTip" name="About Pizza" id="pizza" target="productPopup"
href="productPopup.html?product=A">Pizza</a>


现 在只需要调整 CSS。随 Customize Me Now 1.0 一起包含的 CSS 文件会以加了红色下划线的文本呈现大多数链接元素,当鼠标悬浮于其上时,这类文本会变化颜色。用户都希望单击加下划线的链接就能进入链接,但这些 jTip 链接却无此功能;当用户将鼠标悬浮其上时,就触发了工具提示。因此,应该改变它们的样式使之与其他链接稍微不同,但同时又要确保它们充分突出以吸引用户与 之交互。为此,可以用一个新的 CSS 声明将某些定制样式添加到 jTip 类。保持红色不变,但去除下划线和悬浮状态。与此同时,添加一个新 CSS 声明以控制工具提示内容的宽度,从而不需要再用到滚动条。这个新声明基于这样一个事实:jTip 把它的工具提示和 JT 的 id 属性包装在同一个 div 里。最后,创建另一个声明以在工具提示内容内隐藏主标题;这样,就可以使用 jTip 通过链接的 name 属性自动生成的 header 了。完成之后,新的 CSS 如清单 2 所示:


清单 2. 用于 jTip 的 CSS
                

/*restyle tooltip links*/
#CMN a.jTip {
text-decoration: none;
color: #930;
}
/*narrow the width of pages that will be rendered by jTip*/
#JT #main.popup {
width: 200px;
padding: 4px;
}
/*hide the headline of pages that will be rendered by jTip*/
#JT #main.popup h1 {
display: none;
}


如果在 Web 浏览器内查看 2.0 Search Results 页面并将鼠标悬浮于产品和产品选项之上,就会看到运行中的 jTip,如图 1 所示:


图 1. 运行中的 jTip 的截图
运行中的 jTip 的截图

使用 GreyBox 将 off-site 链接转换成 lightbox

排 除了各种导航弯路的影响之后,Customize Me Now 2.0 就基本成型了。现在所需做的是处理 off-site 链接。查找结果页面仍然包含能连接到厂商网站的弹出链接。与前面用 jTip 替换的弹出窗口不同,这些链接可以转到不受控制的完全功能的 Web 站点。它们太大,因此无法以工具提示的形式呈现,而且它们与其他应用程序过于分开,因此也无法采用模式对话框的形式。GreyBox 正好适用于这种情况。

与多功能的 ThickBox 不同(可以处理 iframe 窗口、Ajax 数据、图片幻灯片和许多其他类型的内容),GreyBox 只有一种功能。它能够使用一种半透明的覆盖层(overlay)覆盖 Web 站点,然后在顶端打开另一个 Web 站点。Lightbox 处理与模式对话框之间的差别很小,但外观却显著不同。可以在这些链接上使用 ThickBox,但使用这种方式就不能如此清晰地区分两个站点。您总是希望用户认为他们看到的是两个完全不同的站点。

到现在为止,您应该比较熟悉使用 GreyBox 启用链接了。只需向链接添加一系列属性。

  • title:这会给 GreyBox 覆盖层一个标题。
  • rel:添加这个不常用的 HTML 属性并将其值设为“gb_page_fs[]” — 一个启用开源库的特殊属性。

把这些属性添加到 off-site 链接后,每个弹出链接将如清单 3 所示(尽管在现实世界中,Google 并不生产比萨):


 

本文转自IBM Developerworks中国

        请点击此处查看全文

从三个角度理解知识图谱 2012年谷歌首次提出“知识图谱”这个词,由此知识图谱在工业界也出现得越来越多,对于知识图谱以及相关概念的理解确实也是比较绕。自己在研究大数据独角兽Palantir之后开始接触知识图谱,也算对其有了一定了解,这里从三个角度总结一下怎么去理解知识图谱。 几个基本概念:本体、实体、知识库、知识图谱 1、本体是概念的集合,是大家都公认的概念框架,一般不会改变如“人”、“事”、“物”、 “地”、“组... 阅读详情

相关推荐

激光焦点动态跟踪技术实战大揭秘:电容式与同轴视觉的巅峰对决

激光焦点动态跟踪技术是保证激光加工质量的关键因素。本文对比评测了电容式同轴视觉两种主流技术:电容式响应速度快、成本低,适合高速稳定加工环境,但易受电磁干扰;同轴视觉精度高、抗干扰强,适合精密加工复杂工件,但成本较高且处理速度受限。评测结果表明,企业应根据加工需求、预算环境选择合适技术。未来该技术将向智能化、多技术融合方向发展,为工业应用提供更优解决方案。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 94

Ajax 改造,第 1 部分使用 Ajax jQuery 改进现有站点

Ajax 技术改变了大型商业 Web 应用程序的外观,但是许多较小的 Web 站点都不具备足够的资源重新构建完整的用户界面(UI)。Ajax 的一些新特性能够解决实际中的界面问题并改善用户体验。本文将展示如何使用简单的模式窗口消除弹出窗口导航死角。通过应用渐进增强(progressive enhancement)这一理念,能够保证这些增强的 UI 特性不会损害站点的可访问性,并且严格遵守 Web

IBM技术期刊 791

从点击图标到Activity亮屏:AMS、Zygote、ActivityThread的Binder协作之旅

Launcher通过Context调用 startActivity(),最终会通过 Activity.startActivity() 传递到 ActivityManager.getService(),获取AMS的Binder代理对象(IActivityManager)。这里的 attach() 方法通过Binder调用AMS的 attachApplication(),将新进程的 IApplicationThread 代理对象传递给AMS。这一步的Binder通信,是整个启动流程的关键转折点,值得细细品味。

大模型大数据攻城狮的专栏 1034

Ajax 改造,第 1 部分: 使用 Ajax jQuery 改进现有站点

Ajax 技术改变了大型商业 Web 应用程序的外观,但是许多较小的 Web 站点都不具备足够的资源重新构建完整的用户界面(UI)。Ajax 的一些新特性能够解决实际中的界面问题并改善用户体验。本文将展示如何使用简单的模式窗口消除弹出窗口导航死角。通过应用渐进增强(progressive enhancement)这一理念,能够保证这些增强的 UI 特性不会损害站点的可访问性,并且严格遵守 Web

打杂人-aerchi 1976

在 DB2 中存储行业 XML 内容的快速方法

面向 pureXML™ 的行业包(industry bundle)(发布在 alphaWorks 上)演示如何通过小脚本或基于 Java™ 的应用程序访问以 XML 格式存储在 IBM® DB2® 中的内容。它们主要关注填充、验证查询与特定行业相关的 XML 内容。pureXML 行业包通常是一个可下载的 zip 文件,包含示例 XML 消息(XML 实例文档)以及使用 XML 消息填充

IBM技术期刊 3499

DB2 pureXML 动态编程组合拳:iBatis+BeanUtils+JiBX

本文要介绍的开发模式主要针对需求易变的应用开发,使用各种工具技术来增强框架的灵活性。随着 XML 描述能力灵活性被逐渐认识,许多 XML 相关技术应运而生,越来越多的应用使用了 XML 技术。一个基于 XML 的应用开发常常可以划分为几个层面:数据存储层、数据访问层、业务逻辑层界面展示层。 DB2pureXML 技术的逐渐成熟,为这些基于 XML 的应用开发提供了有力的支持。

IBM技术期刊 3036

借助 Picasa Web Albums 开发 PHP 应用程序

Picasa Web Albums 为 Web 应用程序开发人员提供了一种基于 REST 的 Data API,可用于处理存储于服务器上的照片相册。PHP 的 SimpleXML 扩展 Zend 的 GData Library 则非常适合于处理由此 API 生成的 XML 提要,借助于此,您就能够定制照片管理共享的 PHP 应用程序。通过本文,了解这个 Picasa Web Albu

IBM技术期刊 2234

DIY: 实现自己的中文语音应用

VXML 是 w3 组织提出的用以搭建语音应用的描述性语音。使用 VXML 可以很方便得搭建集成语音识别语音合成技术的语音应用。本文给出了一个简单的例子介绍 VXML 的两个基本的使用方法——语音识别语音合成,并且简单介绍了 VXML 与 JAVA 层信息交互的方法。相信通过本文的介绍,大家就可以搭建出很酷的语音控制系统。语音技术微软公司董事长比尔盖茨曾不止一次的提出,语音技术

IBM技术期刊 1878

使用 PHP 的 SimpleXML 扩展处理 YouTube 数据并将其集成到 PHP 应用程序中

YouTube 视频共享站点允许 Web 开发人员通过其基于 REST 的开发人员 API 访问公共内容。PHP 的 SimpleXML 扩展非常适合处理由这种 API 生成的 XML 提要,并使用它们构建定制的 PHP 应用程序。本文将向您介绍 YouTube Data API,演示如何使用它浏览用户生成的视频内容,访问视频元数据、评论回复,并执行关键字搜索。 简介

IBM技术期刊 1813

Firefox 3.0 扩展代码中使用 API技巧

即将发布的 Firefox 3.0 内置了对微格式的支持,可通过 Firefox 扩展访问这种 API。这篇技巧通过一个简单的例子说明如何在扩展代码中使用这种 API。我们从一个简单的 Hello World 扩展开始,使它能够存储来自任何网页的 hCard,然后利用存储的 hCard 填充 Web 表单。阅读这篇技巧文章需要对 Firefox 的扩展机制有所了解。所幸的是,如果编写过 J

IBM技术期刊 1704

Firefox 1.5 中的 XML,第 3 部分:利用 JavaScript 处理 Firefox 中的 XML

这是 “Firefox 1.5 中的 XML” 系列中的第三篇文章,您将学习在 Mozilla Firefox 中使用 JavaScript 实现处理 XML。在前两篇文章 Firefox 1.5 中的 XML,第 1 部分:XML 特性概述 Firefox 1.5 中的 XML,第 2 部分:基本 XML 处理 中,我们了解了 Mozilla Firefox 中各种与 XML 相关的

IBM技术期刊 1694

XForm 表单对函数事件处理功能的支持

Lotus Forms 通过构建动态的电子表单,收集用户信息并将其传递给其他应用系统,以实现业务流程的管理。与纸质表单相比,XForm 电子表单的最大优势之一就是能够动态地响应用户活动。如,根据用户输入动态改变背景颜色,响应鼠标点击事件发送邮件或提交表单,等等。本文将通过若干实例,向您详细讲述 Lotus Forms 中的事件处理机制 , 包括 XForm 表单支持的主要事件、活动函数。

IBM技术期刊 1680

使用 XForms Ruby on Rails 开发小型门诊管理系统,第 1 部分: 安装配置 IBM DB2 9 pureXML

本系列文章 介绍如何结合使用 XForms、IBM DB2 pureXML Ruby 来简化 Web 应用程序的开发,分为四部分,这是第一部分。本系列文章中将开发一个虚构的应用程序来管理一个小型医院的门诊患者信息。您将看到每种技术的强大功能,同时还将看到如何将其结合起来。第一部分将说明 XForms、DB2 pureXML Ruby on Rails 如何帮助您更快地构建以 XML 为核心

IBM技术期刊 1545

使用 XForms Ruby on Rails 开发小型门诊管理系统,第 2 部分:实现患者信息 Xform

本系列文章的第 1 部分设计了一个 Web 应用程序,让患者在医生办公室中输入信息。讨论了如何使用 XForms、DB2 pureXML Ruby on Rails 创建这样的应用程序,并对这些技术的用法做了一些实验。本文是第 2 部分,我们开始实现该应用程序。我们将设计第一个 XForm,并建立从表单向 DB2 插入数据的 Ruby on Rails 后端。您将看到如何通过这三种技术在整

IBM技术期刊 1511

SASfit:将结构模型拟合到小角度散射数据的程序-开源

SASfit已编写用于分析绘制小角度散射数据。 它可以计算整体结构参数,例如回转半径,散射不变性,Porod常数。 此外,它可以将尺寸分布与包括不同结构因素在内的多种形状因素一起拟合。 另外,已经实现了一种算法,该算法允许使用一组通用的(全局)参数同时拟合多条散射曲线。 在对比变化实验或极化中子测量中,这最后一个选项尤其重要。 全局拟合有助于明确确定拟合参数,否则,通过分析单个曲线,拟合参数将具有很强的相关性。 SASfit用户指南:http://youtube.com/sasfitteam版本:http://sasfit.org/版本代码:http://sasfit.org

基于Python382WebDriver的Windows10环境微信电脑版自动化操作工具_微信消息自动收发_群管理_朋友圈互动_文件传输_聊天记录导出_用户行为模拟_定时任务.zip

基于Python382WebDriver的Windows10环境微信电脑版自动化操作工具_微信消息自动收发_群管理_朋友圈互动_文件传输_聊天记录导出_用户行为模拟_定时任务.zip

上一篇: 在 PlayStation 3 上进行 Linux 开发,第 3 部分: 采用小工具来瘦身 X11
下一篇: SOA 案例研究,第 3 部分:服务连接场景
ibmjournal
博客等级 码龄20年 66粉丝 1091原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值