2009-6
19
在上篇对jQuery Tools做了总体的介绍,从本篇起开始介绍jQuery Tools的各个工具组件。
在进入正题前,还是想啰嗦一些东西,也许对jQuery Tools的理解会有所帮助。
- jQuery Tools的功能侧重于信息展示和视觉效果,从网页常用的功能点上改善用户体验和可阅读性。这一点与其它一些Javascript UI库不同,它们可能会侧重于一些桌面应用程序效果,诸如拖拽、滑动、排序等,这在富应用程序(RIA)中的应用可能会更多些。而jQuery Tools可用于广泛的网站设计中;
- jQuery Tools并不是一个框架性的东西,不具有什么学习难度,在掌握一些使用规则后,在页面中引用了它的脚本文件就可以立即使用了。虽然它是基于jQuery的,但是并不意味着你需要掌握jQuery才能使用它。当然如果你能了解jQuery的诸如选择器的简单使用,更有助于掌握jQuery Tools;
- jQuery Tools的使用严格遵循了javascript代码不与css定义混合的原则。它在使用时仅仅是通过预定义的class来控制html,CSS样式定义完全由你来控制。
- 类似于google提供了jquery的CDN服务,jQuery Tools也提供了它的CDN免费服务至2010年底,你可以使用以下方式引用它:
<script src="http://cdn.jquerytools.org/1.0.2/jquery.tools.min.js"></script>
可惜的是该CDN目前没有在亚洲设立服务器,官方说要到2009年秋,所以暂时就不建议用了。
不再啰嗦,言归正传看使用:
- 选项卡应用(Tabs)
示例一:选项卡效果在Web开发时经常会用到,下面先来看最简单的实现
上面是最终要实现的效果。看一下代码:
HTML:
<!-- 定义选项卡按钮,注意最外层的class定义为tabs --> <ul class="tabs"> <li><a href="#first">选项卡1</a></li> <li><a href="#second">选项卡2</a></li> <li><a href="#third">选项卡3</a></li> </ul> <!-- 定义选项卡切换的每个区域,注意最外层的class定义为panes --> <div class="panes"> <div>第一个选项卡内容,<a href="#second">跳转至选项卡2</a></div> <div>第二个选项卡内容,<a href="#third">跳转至选项卡3</a></div> <div>第三个选项卡内容,<a href="#first">跳转至选项卡1</a></div> </div>
Javascript:
$(function() { // 将ul.tabs区域设定为选项卡,用来控制div.panes区域中最近一层的各div区域 // 注意tabs和panes与html中class的对应关系 $("ul.tabs").tabs("div.panes > div",{history: true}); });
说明:
- CSS代码,也就是整个样式完全是由你来控制的。这里是上面选项卡用到的css,供你参考。使用css控制样式时,需注意的一点是当前选项卡的class为“current”。
- 可设定选项卡锚点,通过链接在选项卡中切换
- tabs中的参数{history: true},使得选项卡与浏览器历史的前进后退关联在一起。不用的话可以不要这个参数。
示例二:通过鼠标滑过事件切换选项卡,看效果先:


.. 产品介绍一 ..
.. 产品介绍二 ..
.. 产品介绍三 ..
HTML:
<!--定义选项卡区域,用id为products的div包起来--> <div id="products"> <img src="http://static.flowplayer.org/img/commerce/free.png" alt="Free version" /> <img src="http://static.flowplayer.org/img/commerce/commercial.png" alt="Commercial version" /> <img src="http://static.flowplayer.org/img/commerce/multidomain.png" alt="Multidomain version" /> </div> <!--定义pane区域,为每个区域定义相同的class:description--> <div class="description" id="free"><div class="arrow"></div> .. 产品介绍一 .. </div> <div class="description" id="commercial"><div class="arrow"></div> .. 产品介绍二 .. </div> <div class="description" id="multidomain"><div class="arrow"/></div> .. 产品介绍三 .. </div>
Javascript:
$("#products").tabs("div.description", {event:'mouseover'});
说明:
- CSS代码,也就是整个样式完全是由你来控制的。这里是上面选项卡用到的css,供你参考。
- tabs中的参数{event:’mouseover’},更改默认的点击事件为鼠标划过事件,这里你可以改为自定义事件。
示例三:创建折叠效果(手风琴效果),看效果先:
First pane
… 内容一 …
Second pane
…内容二 …
Third pane
… 内容三 …

.. pane content1 ..
内容一
.. pane content2 ..
内容二
.. pane content3 ..
内容三
HTML
<div id="accordion"> <h2>First pane</h2> <div class="pane">... pane content1 ...</div> <h2>Second pane</h2> <div class="pane">... pane content2 ...</div> <h2>Third pane</h2> <div class="pane">... pane content3 ...</div> </div>
Javascript
//上面第一个效果的 $("#accordion").tabs("#accordion div.pane", { tabs: 'h2', //确定哪些区域为选项卡 effect: 'slide' //展开效果,slide为纵向滑动 }); //上面第二个效果的 $("#accordion").tabs("#accordion div", { tabs: 'img', //确定哪些区域为选项卡 effect: 'horizontal' //展开效果,horizontal为横向滑动 });
说明:
Tabs选项卡总结:
- 从上面几个示例的用法可以看到,调用Tabs效果的关键在于HTML的预定义。我们应当为选项卡区域设定一个id或者为每一个选项卡设定相同class,然后为每一个pane区域设定class。在调用tabs方法的时候,关键在于传入上面定义的这两个对象集合。了解到这一点,其余都就可以自由发挥了。
- Tabs工具本身不具备任何CSS,CSS需要完全由你来控制,希望不会因为这种自由而难住你。
- 在官方示例中还有不少是上面没有提到的,例如tabs中通过ajax填充pane、通过选项卡制作导航器等,这里去查看更多
通过Tabs的学习,想必大家对jquery tools有了进一步的了解。有什么要说的么,可以再下面留言讨论。
在后面的文章中会继续探讨其它工具的使用示例,欲知后事如何,请坐好沙发,搬好小马扎,且听下回分解。
Jquery Tools系列文章导航:
- Jquery Tools——不可错过的Jquery UI库(一):简介
- Jquery Tools——不可错过的Jquery UI库(二):Tabs选项卡
- Jquery Tools——不可错过的Jquery UI库(三):提示工具条
- Jquery Tools——不可错过的Jquery UI库(四):遮罩效果
- Jquery Tools——不可错过的Jquery UI库(五):滚动效果
- Jquery Tools——不可错过的Jquery UI库(六):综合示例
延伸阅读:
- Jquery Tools——不可错过的Jquery UI库(一)
- Jquery Tools——不可错过的Jquery UI库(三)
- jQuery Tools——不可错过的jQuery UI库(六)
- jQuery Tools——不可错过的jQuery UI库(五)
- Jquery Tools——不可错过的Jquery UI库(四)
- jQuery 1.4正式发布:一起来看有哪些新变化(下篇)
- 实现文字高亮功能的两种解决方案(Javascript/Jquery)
- 强大的Jquery图表绘制插件 —— jqPlot
版权声明:
本站内容受著作权法保护。个人网站、blog转载时请遵循 “署名-非商业用途-保持一致” 的创作共用协议;商业网站或媒体未授权不得复制本站内容。
友情提示:
如对本文有任何疑问,或在示例的使用中遇到问题,或有好的建议,欢迎在下面留言共同学习,有问必答。


[...] « Jquery Tools——不可错过的Jquery UI库(二) Jquery Tools——不可错过的Jquery UI库(四) » 2009-6 20 Jquery [...]
奇怪,我将官方示例中的CSS和blue.png都下载下来,放在同一个目录中,CSS中对图片的引用也修改过来了,发现只有当前的Tab在鼠标移过去的时候可以看到图片,其他情况下看不到图片……囧……
难道又要我去修理CSS……?
弱弱问下 在css文件结尾这段
div.panes div.pane{
display:none;
}
中
div.pane是啥意思呢?
我删掉 div.pane后就变全隐藏了
是为了现实第一个div而弄的嘛?啥逻辑捏?
这句是在页面初始时让每个选项卡的区域(pane)默认隐藏。
但是在本例中未定义每个pane的class为“pane”,所以这句应改为:
div.panes div{
display:none;
}
原来如此 多谢回复
您好
有個關於dialog 和tabs 的問題想請教
範例- http://www.megaupload.com/?d=IDKJDXHK
請問
如何讓Test3 和Test4 的dialog 顯示置中
不要有畫面出現在螢幕下方的現象?
還有
如果在tabs 顯示第二或第三頁時關掉dialog
那再點選其他Test 時
tabs 會顯示在剛才關閉那頁
有沒有辦法讓每次按下Test 時都顯示在第一頁呢?
我是菜鸟,问弱智问题。
在wordpress中要用这些效果,是不是在header中调用某个js?比如这样:
<script src="/js/jquery-1.3.2.min.js”>
<script type="text/javaScript" src="/js/tools.tabs-1.0.4.min.js”>
然后再在文章内用源代码方式写上HTML,比如:
First pane
… pane content1 …
Second pane
… pane content2 …
Third pane
… pane content3 …
然后再在文章中永远代码方式写上Javascript,比如:
$(”#products”).tabs(”div.description”, {event:’mouseover’});
是这样的吗?
很弱智的问题,Jquery一点也不会,请别见笑哦。
您过谦了。我在实现你说的这些的时候,也是很费事的,我说一下我的做法。
1. 外部js文件的引用,如你所说,按文件引用即可。 所有文章都要用到的js文件(如jquery.js),可以放在wordpress皮肤中引用,某篇文章单独要引用的js文件,可在这篇文章的编辑状态引用,如您提到的/js/tools.tabs-1.0.4.min.js。
2. html代码部分,完全如您所说,直接在代码状态写的。
3. 事件绑定等内嵌的javascript可在代码状态,类似下面写法:
(我的经验,尽量不要使用换行,否则可能会被wordpress添加多余代码,导致脚本失效)
4. 此外,还一部分你没有提到,是为某篇文章添加单独的css。这一部分我使用的是一个叫WP Post Styling的插件。安装后,则可在某篇文章中添加特定的样式。
比较麻烦,如果有更好的办法,希望能分享下。
非常感谢这样详尽的解答,我这就去做测试!
[...] « 强大的Jquery图表绘制插件 —— jqPlot Jquery Tools——不可错过的Jquery UI库(二) » 2009-6 18 Jquery Tools——不可错过的Jquery UI库(一) 发表于: Jquery, [...]
[...] Jquery Tools——不可错过的Jquery UI库(二):Tabs选项卡 [...]
我想请问一下各位大侠,要试用如上的特效我该怎么做,我导入了JQuery库,也按照上面的代码做的,但就是出不来效果!
处虐的看了一下,和我想要的结果完全不一样,为了弄了提示就把html的模式都打乱了,真是没意思~~~~~~~~~~~~我想要的是结构和行为分开的,虽然象tab避免不了要在结构上搭配.但是想tip就没必要了 ~~~~~
[...] Jquery Tools——不可错过的Jquery UI库(二):Tabs选项卡 [...]