jQuery练手作品:Tab 切换效果

啥是“Tab 切换效果”,这都不知道那肯定落伍了!其实实现这个有很多方法,随手一搜就是一大把。不过,既然已经加载了jQuery,那就物尽其用,参考了这篇文章《用 jQuery 实现灵活的 tab 切换效果》,也给小站整了个(见侧边栏)。

tab-sidebar.jpg

老规矩,三块代码放了先:

 
<div id="sidebar-tab">
 
	<div id="tab-title">
 
		<h3><span id="tab-1" class="current">最新评论</span><span id="tab-2">近期热评</span><span id="tab-3">随机文章</span></h3>
 
	</div> /* Tab的标题,采用span标签,分别加上了id,并给第一个加上class="current" */
 
	<div id="tab-content">
 
		<ul class="tab-1"><?php wkc_recent_comments('number=10&length=25'); ?></ul>
 
		<ul class="tab-2"><?php wkc_most_commented_posts('number=10&days=300'); ?></ul>
 
		<ul class="tab-3"><?php wkc_random_posts('number=10&length=40'); ?></ul>
 
	</div> /* Tab的内容,分别加上了与标题对应的class;其中tab-content ul内的函数是调用WP Kit cn插件的 */
 
</div>
 
#sidebar-tab{border:1px solid #ccf;margin-bottom:1.5em;overflow:hidden;}
 
#tab-title .current{color:#356aa0;border-bottom:0px;padding:5px 14px;} /* 当前选中标题时的样式 */
 
#tab-title h3{color:#666;font-size:15px;font-weight:400;}
 
#tab-1,#tab-2,#tab-3{padding:5px 7px;border-bottom:1px solid #ccf;cursor:pointer;}
 
#tab-2{border:1px solid #ccf;border-top:none;}
 
.tab-2,.tab-3{display:none;} /* 这句是用让class=“tab-2”“tab-3”的先隐藏,用CSS控制的好处是没有延迟;如果用jQuery控制会出现只有当页面全部加载完后,tab-2tab-3中的内容才隐藏 */
 
#tab-content ul{padding:5px 10px;overflow:hidden;}
 
#tab-content ul li{padding-top:5px;height:20px;}
 
$('#tab-title span').mouseover(function(){ //鼠标移至id="tab-title"下的span标签时,触发
 
	$(this).addClass("current").siblings().removeClass(); //给当前的添加class="current",并且让其同辈元素(即其余#tab-title span)移除class="current";
 
	$("."+$(this).attr("id")).show().siblings().hide(); //让class="鼠标移至的span的id"(即tab-content中对应ul中的内容)显示,并且让其同辈元素(即#tab-content ul)隐藏;
 
});

OK,代码就这些,使用前提是加载了jQuery。这次折腾是html、css、jQuery代码三管齐下,才做出来这么一个东东,效果还行!

主机格调
  1. 鱼粉
    十二月 8, 2009 22:59:22 #1

    不是吧。。沙发真的没人抢? :mad:

    • 都睡了吧,发文都9点半了,等RSS输出可能都11点了……

  2. evlos
    十二月 8, 2009 23:17:23 #2

    呵呵 前排上座 ~ 代码就像一门艺术似地 ~

    • 那个怎么说来着,哦,代码如诗!

  3. keon
    十二月 8, 2009 23:19:23 #3

    還蠻前的~~哈哈~~

    • 欢迎下次来杀个发~~HOHO

  4. Deloz
    十二月 8, 2009 23:32:23 #4

    :???: 点标题好像进不来

    • 是的,弄成伸缩了,在想更好的思路。

  5. 蓝冰
    十二月 8, 2009 23:36:23 #5

    日,木木越来越强大了。

    • 不要轻易“日”嘛,俺强大了那就夸夸俺嘛!

  6. 起衣
    十二月 8, 2009 23:39:23 #6

    很帅很帅,收藏好叻以后折腾. :grin:

    • 呵呵,建议复制下代码,小心哪天小站从这个宇宙消失了……

      • 起衣
        十二月 9, 2009 13:27:13

        哎,最近也是每天备份的….

  7. winy
    十二月 9, 2009 00:09:0 #7

    首页那个风琴效果也不错,也一起发出来吧,伸手要 :razz:

    • 还有一些小问题,今晚应该会发出来,不急哈~

  8. 万戈
    十二月 9, 2009 07:43:7 #8

    很好,我现在用JQ了,可以放弃原tab的JS了

    • 呵呵,又少用一个JS咯,不错不错!

  9. 超人
    十二月 9, 2009 10:39:10 #10

    :!: 越折腾越厉害了~

    • 学一点写一点,感觉也还好……

  10. 昨天从图书馆借了两本Jquery的书,发现Jquery好强大啊 :roll:

    • 那是!而且还容易上手!推荐看看这本《锋利的jQuery》~

  11. 回憶
    十二月 9, 2009 13:34:13 #12

    越來越強大了! :cool:

    • Who are you? 刚安装wordpress嘛

  12. HzlzH
    十二月 9, 2009 14:11:14 #14

    整站jq了。强大啊,嘿嘿 :roll:

    • 效果弄得差不多就开始折腾AJAX啦,哈哈

  13. 太强大了~收录了·~ :arrow:

    • 呵呵,不用客气,尽管收吧~

  14. Ray
    十二月 9, 2009 15:13:15 #16

    好像不太管用?还是我不会用?

    • 这个用还是需要一定的基础的,可能你哪里出错了吧,我自己用着好好的,你肯定也可以的!

  15. 久酷
    十二月 9, 2009 19:05:19 #18

    折腾代码也是一种快乐 :roll: :roll:

    • 是呀!通过自己动手一步步实现想要的效果,最终实现了,享受这种成就感和过程!

  16. zwwooooo
    十二月 9, 2009 22:17:22 #19

    今晚根据你的文章在折腾,明天就能搞定,这个效果真赞,早就想搞了

      • 搞好了,完全复制代码 :razz:

        • 呵呵,功能实现是很容易的,就是美化麻烦的哟,尤其你还是图片的!

  17. A.shun
    十二月 9, 2009 22:20:22 #20

    可以让侧栏简洁不少,很赞 :roll:

    • 最主要是自己折腾出来的,相关JS代码是很多的!

  18. 浩子
    十二月 9, 2009 22:32:22 #21

    囧,看不懂……围观下

    • 围观也是一种支持!3Q~

  19. ooaixt
    十二月 10, 2009 11:35:11 #22

    这个做过, :cool:

    • 我一直看着那么多代码再想能不能再少点……

  20. 杰子
    十二月 10, 2009 13:16:13 #23

    呵呵,看看 在linux 下效果如何

    • 这个应该完全兼容的!

  21. 铵铵
    十二月 11, 2009 02:59:2 #24

    我晕.比JS简洁多了.不错.
    可不可以加个切换渐隐渐现效果.那样就更完美了.

    • .show()和.hide()改成.fadeIn()和.fadeOut()就可以了,不过雅黑字体在IE下会得一塌糊涂……

      • 铵铵
        十二月 26, 2009 02:11:2

        :cry:
        脚本冲突,心痛中…

  22. 老大 崇拜你啊整的这么好 再踩一脚 以后需要帮忙得教教小弟我啊 O(∩_∩)O~

    • 可以先翻翻我以前写的一些技术文哦~

  23. 锋子
    十二月 24, 2009 20:40:20 #27

    强啊~~~回来有空弄~~左侧那个上顶部去下部都还没弄呢~~~~

  24. Terry
    一月 23, 2010 14:40:14 #28

    这个得琢磨琢磨~~~ :grin:

  25. 三月 3, 2010 14:07:14 #30

    :mrgreen: 不错

  26. AU
    三月 11, 2010 22:45:22 #31

    木木,你好,你是如何在侧边栏的评论里显示头像的啊?是修改wp kit cn这个插件么?…

    • AU
      三月 12, 2010 14:46:14

      OK…我自己搞定了,原来是修改下wp-kit-cn.tags.php里面function wkc_recent_comments($args=”)里面的’xformat’字段改成’%gravatar% : %comment_excerpt%‘,

      • 呵呵,现在一般别人想我提问,我都拖几天回答,事实也表明,大部分问题提问者自己都能搞得定~

  27. 哲哲
    五月 11, 2010 21:16:21 #33

    您好·我对jquary一点都不懂··看到三段代码我想到的是把css的加到style.css中,把html的加到网页合适的位置,但是jquary我就不知道怎么用了?希望能指点下·

  28. diao
    七月 29, 2010 19:20:19 #34

    楼主的扩展性作的不太好哦!!
    三段代码:
    css样式:
    #menu{width:410px;height:35px;}
    #menu span{float:left;width:80px;height:35px;line-height:35px;font-size:13px;color:#000;cursor:pointer;border:1px red solid;}
    #menu .color{background-color:green;font-weight:bold;}
    #cont div{width:410px;height:300px;display:none;border:1px #000 solid;}
    #cont .show{display:block;}
    Html代码:

    星期一
    星期二
    星期三
    星期四
    星期五

     

    第一天
    第二天
    第三天
    第四天
    第五天

    jquery代码:

    $(function(){
    $(“#menu span”).mouseover(function(){
    var index=$(“#menu span”).index(this);
    $(this).addClass(“color”).siblings().removeClass(“color”);
    $(“#cont div”).removeClass(“show”).eq(index).addClass(“show”);
    })
    });

  29. diao
    七月 29, 2010 19:23:19 #35

    <!–
    星期一
    星期二
    星期三
    星期四
    星期五

     

    第一天
    第二天
    第三天
    第四天
    第五天

    –>

  30. diao
    七月 29, 2010 19:24:19 #36

    疯了!!!html发不上去 :cry:

  31. 小闇
    八月 14, 2010 19:31:19 #37

    側邊欄東西太少了,沒用這個~

  32. 途途
    十月 27, 2010 14:42:14 #38

    功底不是很强,有点看的不明白~
    不过还是要谢谢木木的精彩分享~

    • 这个有点综合了,先mark呗~呵呵

  33. sinsky
    十二月 4, 2010 21:35:21 #39

    我在纠结一个问题。·

  34. .tab-1,.tab-2{display:none;}是关键呀,我怎么没有想到。

  35. 这个东西看的不太懂。。。凑下热闹

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*


您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">