- 第2版前言
- 本书结构
- 读者对象
- 本书约定
- 读者反馈&示例下载
- 疑难解答&本书勘误
- 第1章 认识 jQuery
- 第2章 jQuery 选择器
- 第3章 jQuery 中的 DOM 操作
- 第4章 jQuery 中的事件和动画
- 第5章 jQuery 对表单、表格的操作及更多应用
- 第6章 jQuery 与 Ajax 的应用
- 第7章 jQuery 插件的使用和写法
- 第8章 用 jQuery 打造个性网站
- 第9章 jQuery Mobile
- 第10章 jQuery 各个版本的变化
- 第11章 jQuery 性能优化和技巧
- 附录A 关于 $(document).ready() 函数
- 附录B Firebug
- 附录C Ajax 的 XMLHttpRequest 对象的属性和方法
- 附录D jQuery $.ajax() 方法的参数详解
- 附录E jQuery 加载并解析 XML
- 附录F 插件 API
- 附录G jQuery 速查表
3.3 案例研究——某网站的超链接和图片提示效果
在这一节中,将以某网站的超链接和图片提示效果为例,来理解和巩固jQuery中的DOM操作。
1.超链接提示效果
在现代的浏览器中,它们已经自带了超链接提示,只需在超链接中加入title属性就可以了。HTML代码如下:
然而这个提示效果的响应速度是非常缓慢的,考虑到良好的人机交互,需要的是当鼠标移动到超链接的那一瞬间就出现提示。这时就需要移除<a>标签中的title提示效果,自己动手做一个类似功能的提示。
首先在空白的页面上,添加两个普通超链接和两个带有class的超链接。
图3-37 超链接提示效果
HTML代码如下:
然后为class为tooltip的超链接添加mouseover和mouseout事件,jQuery代码如下:
实现这个效果的具体思路如下。
(1)当鼠标滑入超链接。
①创建一个<div>元素,<div>元素的内容为title属性的值。
②将创建的元素追加到文档中。
③为它设置x坐标和y坐标,使它显示在鼠标位置的旁边。
(2)当鼠标滑出超链接时,移除<div>元素。
根据分析的思路,写出如下jQuery代码:
运行效果,如图3-38所示。
此时的效果有两个问题:首先是当鼠标滑过后,<a>标签中的title属性的提示也会出现;其次是设置x坐标和y坐标的问题,由于自制的提示与鼠标的距离太近,有时候会引起无法提示的问题(鼠标焦点变化引起mouseout事件)。
图3-38 超链接提示
为了移除<a>标签中自带的title提示功能,需要进行以下几个步骤。
(1)当鼠标滑入时,给对象添加一个新属性,并把title的值传给这个属性,然后清空属性title的值。
jQuery代码如下:
(2)当鼠标滑出时,再把对象的myTitle属性的值又赋给属性title。
jQuery代码如下:
注意:为什么当鼠标滑出时,要把属性值又赋给属性title呢?
因为当鼠标滑出时,需要考虑再次滑入时的属性title值,如果不将myTitle的值重新赋给title属性,当再次滑入时,title的值就为空了。
为了解决第2个问题(自制的提示与鼠标的距离太近,有时候会引起无法提示的问题),需要重新设置提示元素的top和left的值,代码如下所示,为top增加了10px,为left增加了20px。
解决这两个问题后,完整的代码如下:
此时,鼠标滑入和滑出显示已经没问题了,但当鼠标在超链接上移动时,提示效果并不会跟着鼠标移动。如果需要提示效果跟随鼠标一起移动,可以为超链接加上一个mousemove事件,jQuery代码如下:
图3-39 提示效果
这样,当鼠标在超链接上移动时,提示效果也会跟着一起移动了。
到此,超链接提示效果就完成了,完整的jQuery代码如下:
2.图片提示效果
稍微修改上面的代码,就可以做出一个图片的提示效果。
首先在空白网页中加入图片,HTML代码如下:
设置样式后,初始化效果如图3-40所示。
图3-40 初始化效果
参考前面的超链接提示效果的代码,只需要将创建的<div>元素的代码由
改为
就可以了。当鼠标滑过图片后,显示效果如图3-41所示。
图3-41 图片提示效果
为了使效果更为人性化,还需要为图片增加说明文字,即提示出来的大图片下面出现图片相应的介绍文字。
可以根据超链接的title属性值来获得图片相应的介绍文字,jQuery代码如下:
然后将它追加到<div>元素中,代码如下:
注意:在判断this.myTitle是否为""时,使用了三元运算。
三元运算结构为:Boolean?值1:值2。它的第1个参数必须为布尔值。
当然三元运算也可以用if(){ }else{ }
代替,例如:
这样,图片提示效果就完成了,当鼠标滑过图片时,图片会出现预览的大图,大图下面还会有介绍文字。效果如图3-42所示。
图3-42 图片提示效果
完整的jQuery代码如下:
到此,超链接提示和图片提示效果就都完成了。此处仅仅用了jQuery中的几个DOM操作方法,就完成了很友好的动态提示效果。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论