正在加载...
欢迎订阅本站RSS,RSS地址:http://feed.css9.net。选择您使用的阅读器:Google Reader鲜果抓虾


上篇对jQuery Tools做了总体的介绍,从本篇起开始介绍jQuery Tools的各个工具组件。

在进入正题前,还是想啰嗦一些东西,也许对jQuery Tools的理解会有所帮助。

  1. jQuery Tools的功能侧重于信息展示和视觉效果,从网页常用的功能点上改善用户体验和可阅读性。这一点与其它一些Javascript UI库不同,它们可能会侧重于一些桌面应用程序效果,诸如拖拽、滑动、排序等,这在富应用程序(RIA)中的应用可能会更多些。而jQuery Tools可用于广泛的网站设计中;
  2. jQuery Tools并不是一个框架性的东西,不具有什么学习难度,在掌握一些使用规则后,在页面中引用了它的脚本文件就可以立即使用了。虽然它是基于jQuery的,但是并不意味着你需要掌握jQuery才能使用它。当然如果你能了解jQuery的诸如选择器的简单使用,更有助于掌握jQuery Tools;
  3. jQuery Tools的使用严格遵循了javascript代码不与css定义混合的原则。它在使用时仅仅是通过预定义的class来控制html,CSS样式定义完全由你来控制。
  4. 类似于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开发时经常会用到,下面先来看最简单的实现

    第一个选项卡内容,跳转至选项卡2
    第二个选项卡内容,跳转至选项卡3
    第三个选项卡内容,跳转至选项卡1

    上面是最终要实现的效果。看一下代码:

    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},使得选项卡与浏览器历史的前进后退关联在一起。不用的话可以不要这个参数。

    示例二:通过鼠标滑过事件切换选项卡,看效果先:

    Free versionCommercial versionMultidomain version

    .. 产品介绍一 ..

    .. 产品介绍二 ..

    .. 产品介绍三 ..

    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为横向滑动
    });

    说明:

    • 这里是上面第一个效果用到的css,这里是第二个的,供你参考。
    • 与前两个示例的声明方式不同,上面两个效果在tabs方法的第二个参数的tabs属性中确定哪些区域为选项卡。

Tabs选项卡总结:

  1. 从上面几个示例的用法可以看到,调用Tabs效果的关键在于HTML的预定义。我们应当为选项卡区域设定一个id或者为每一个选项卡设定相同class,然后为每一个pane区域设定class。在调用tabs方法的时候,关键在于传入上面定义的这两个对象集合。了解到这一点,其余都就可以自由发挥了。
  2. Tabs工具本身不具备任何CSS,CSS需要完全由你来控制,希望不会因为这种自由而难住你。
  3. 在官方示例中还有不少是上面没有提到的,例如tabs中通过ajax填充pane、通过选项卡制作导航器等,这里去查看更多

通过Tabs的学习,想必大家对jquery tools有了进一步的了解。有什么要说的么,可以再下面留言讨论。
在后面的文章中会继续探讨其它工具的使用示例,欲知后事如何,请坐好沙发,搬好小马扎,且听下回分解。

Jquery Tools系列文章导航:

  1. Jquery Tools——不可错过的Jquery UI库(一):简介
  2. Jquery Tools——不可错过的Jquery UI库(二):Tabs选项卡
  3. Jquery Tools——不可错过的Jquery UI库(三):提示工具条
  4. Jquery Tools——不可错过的Jquery UI库(四):遮罩效果
  5. Jquery Tools——不可错过的Jquery UI库(五):滚动效果
  6. Jquery Tools——不可错过的Jquery UI库(六):综合示例

延伸阅读:

  1. Jquery Tools——不可错过的Jquery UI库(一)
  2. Jquery Tools——不可错过的Jquery UI库(三)
  3. jQuery Tools——不可错过的jQuery UI库(六)
  4. jQuery Tools——不可错过的jQuery UI库(五)
  5. Jquery Tools——不可错过的Jquery UI库(四)
  6. jQuery 1.4正式发布:一起来看有哪些新变化(下篇)
  7. 实现文字高亮功能的两种解决方案(Javascript/Jquery)
  8. 强大的Jquery图表绘制插件 —— jqPlot


版权声明:

本站内容受著作权法保护。个人网站、blog转载时请遵循 “署名-非商业用途-保持一致” 的创作共用协议;商业网站或媒体未授权不得复制本站内容。

友情提示:

如对本文有任何疑问,或在示例的使用中遇到问题,或有好的建议,欢迎在下面留言共同学习,有问必答。

: http://css9.net/flexible-ui-library-jquery-tools-2/

本文相关评论 - 才 16 条评论
2009-06-27 18:03:08

[...] « Jquery Tools——不可错过的Jquery UI库(二) Jquery Tools——不可错过的Jquery UI库(四) » 2009-6 20 Jquery [...]

hailin
2009-09-30 11:00:27

奇怪,我将官方示例中的CSS和blue.png都下载下来,放在同一个目录中,CSS中对图片的引用也修改过来了,发现只有当前的Tab在鼠标移过去的时候可以看到图片,其他情况下看不到图片……囧……
难道又要我去修理CSS……?

nidilzhang
2009-10-14 16:08:43

弱弱问下 在css文件结尾这段

div.panes div.pane{
display:none;

}

div.pane是啥意思呢?

我删掉 div.pane后就变全隐藏了

是为了现实第一个div而弄的嘛?啥逻辑捏?

2009-10-18 13:31:30

这句是在页面初始时让每个选项卡的区域(pane)默认隐藏。

但是在本例中未定义每个pane的class为“pane”,所以这句应改为:

div.panes div{
display:none;
}

2009-10-18 17:20:29

原来如此 多谢回复

嵐曦
2009-10-31 15:05:02

您好
有個關於dialog 和tabs 的問題想請教
範例- http://www.megaupload.com/?d=IDKJDXHK

請問
如何讓Test3 和Test4 的dialog 顯示置中
不要有畫面出現在螢幕下方的現象?
還有
如果在tabs 顯示第二或第三頁時關掉dialog
那再點選其他Test 時
tabs 會顯示在剛才關閉那頁
有沒有辦法讓每次按下Test 時都顯示在第一頁呢?

黑毛
2009-11-21 11:31:08

我是菜鸟,问弱智问题。
在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一点也不会,请别见笑哦。

2009-11-23 09:02:43

您过谦了。我在实现你说的这些的时候,也是很费事的,我说一下我的做法。

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的插件。安装后,则可在某篇文章中添加特定的样式。

比较麻烦,如果有更好的办法,希望能分享下。

黑毛
2009-11-27 00:06:58

非常感谢这样详尽的解答,我这就去做测试!

2009-11-27 10:02:17

:) 不客气

2009-11-23 17:46:30

[...] « 强大的Jquery图表绘制插件 —— jqPlot Jquery Tools——不可错过的Jquery UI库(二) » 2009-6 18 Jquery Tools——不可错过的Jquery UI库(一) 发表于: Jquery, [...]

2010-01-12 21:20:23

[...] Jquery Tools——不可错过的Jquery UI库(二):Tabs选项卡 [...]

guangzai
2010-04-23 15:58:33

我想请问一下各位大侠,要试用如上的特效我该怎么做,我导入了JQuery库,也按照上面的代码做的,但就是出不来效果!

wener
2010-05-10 15:47:43

处虐的看了一下,和我想要的结果完全不一样,为了弄了提示就把html的模式都打乱了,真是没意思~~~~~~~~~~~~我想要的是结构和行为分开的,虽然象tab避免不了要在结构上搭配.但是想tip就没必要了 ~~~~~

2010-06-28 00:01:18

[...] Jquery Tools——不可错过的Jquery UI库(二):Tabs选项卡 [...]

2010-08-23 10:40:21

guess men’s watches

 填写1 + 2的结果