jQuery+css实现的tab切换标签(兼容各浏览器)


Posted in Javascript onJanuary 28, 2016

本文实例讲述了jQuery+css实现的tab切换标签。分享给大家供大家参考,具体如下:

运行效果截图如下:

jQuery+css实现的tab切换标签(兼容各浏览器)

具体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <title>tab切换</title>
 <script src="jquery-1.7.1.min.js" type="text/javascript"></script>
 <script type="text/javascript" >
  (function ($) {
   function set_active(tab, isActive, mode) {
    if (!tab) return;
    if (!isActive) {
     tab.removeClass('active');
     if (mode == "header") {
      var related_body = $(tab.find('a').attr('tab_body'));
      set_active(related_body, false, "body");
     }
    } else {
     tab.addClass('active');
     if (mode == "header") {
      var related_body = $(tab.find('a').attr('tab_body'));
      set_active(related_body, true, "body");
     }
    }
   }
   function change_active(self_$_obj) {
    var _self_tab_header = self_$_obj.parent();
    var prev_active_tab_header = _self_tab_header.parent().find('.active');
    set_active(prev_active_tab_header, false, "header");
    set_active(_self_tab_header, true, "header");
   }
   function init(self) {
    if (self.tab_header_length <= 0) { return; }
    var defaut_active_tab_header = null;
    for (var i = 0, length = self.tab_header_length; i < length; i++) {
     var tab_header = $(self.tab_header_array[i]);
     var tab_header_linker = tab_header.find('a');
     tab_header_linker.attr("tab_body", tab_header_linker.attr("href"));
     tab_header_linker.removeAttr("href");
     tab_header_linker.bind("click", function () {
      change_active($(this));
     });
     if (tab_header.hasClass('active')) {
      defaut_active_tab_header = tab_header;
     }
    }
    if (defaut_active_tab_header) {
     change_active($(defaut_active_tab_header.find('a')));
    } else {
     change_active($(self.tab_header_array[0].find(a)));
    }
   }
   $.fn.c_tab = function () {
    var _self = $(this);
    _self.tab_header_group = _self.find('.tab_header_group');
    _self.tab_header_array = _self.tab_header_group.find('.tab_header');
    _self.tab_header_length = _self.tab_header_array.length;
    if (_self.tab_header_length == 0) {
     return;
    }
    init(_self);
   }
  })($);
  $(document).ready(function () {
   $("#tabContainer").c_tab();
  });
 </script>
 <style type="text/css" >
  body { margin:0; padding:0; background:#DFEFFF; }
  #tabContainer { width:500px; height:300px; margin-left:200px; margin-top:50px; border-radius:4px; -webkit-border-radius:4px; -moz-border-radius:4px; }
  .tab_header_group { color:Green; z-index:10; background:#DDDDDD url('img/navbg1.jpg'); width:100%; padding:0; margin:0; border-bottom:1px solid gray; border-radius:4px 4px 0 0;}
  .tab_header { line-height:30px; font-size:14px; display:inline-block; cursor:pointer; margin-right:-3px; *display:inline; zoom:1; padding-left:10px; padding-right:10px; border-radius:4px 4px 0 0; }
  .tab_header a,a:hover { text-decoration:none; }
  .tab_header:hover { background:#F5F5F5; }
  .tab_header_group .active { margin-bottom:0px; background:gray; color:#fff; }
  .tab_body { margin-top:1px; display:none; }
  .tab_body_group .active { display:block; }
 </style>
</head>
<body>
<div id="tabContainer">
 <ul class="tab_header_group">
  <li class="tab_header"><a href="#tab1" >首页1</a></li>
  <li class="tab_header"><a href="#tab2" >首页2</a></li>
  <li class="tab_header active"><a href="#tab3" >首页3</a></li>
  <li class="tab_header"><a href="#tab4" >首页4</a></li>
  <li class="tab_header"><a href="#tab5" >首页5</a></li>
 </ul>
 <div class="tab_body_group">
  <div id="tab1" class="tab_body" style="width:100%; height:200px; background:#F2F2F2;">
   tab1
  </div>
  <div id="tab2" class="tab_body" style="width:100%; height:200px; background:#F2F2F2;">
   tab2
  </div>
  <div id="tab3" class="tab_body" style="width:100%; height:200px; background:#F2F2F2;">
   tab3
  </div>
  <div id="tab4" class="tab_body" style="width:100%; height:200px; background:#F2F2F2;">
   tab4
  </div>
  <div id="tab5" class="tab_body" style="width:100%; height:200px; background:#F2F2F2;">
   tab5
  </div>
 </div>
</div>
</body>
</html>

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
如何判断图片地址是否失效
Feb 02 Javascript
JavaScript自执行闭包的小例子
Jun 29 Javascript
JS 实现导航栏悬停效果(续2)
Sep 24 Javascript
Javascript实现的简单右键菜单类
Sep 23 Javascript
基于JavaScript实现一定时间后去执行一个函数
Dec 14 Javascript
vue.js初学入门教程(1)
Nov 03 Javascript
基于JavaScript实现数码时钟效果
Mar 30 Javascript
Vue中render方法的使用详解
Jan 26 Javascript
在ES5与ES6环境下处理函数默认参数的实现方法
May 13 Javascript
vue实现商品加减计算总价的实例代码
Aug 12 Javascript
详解Vue中的基本语法和常用指令
Jul 23 Javascript
vue实现登陆页面开发实践
May 30 Vue.js
javascript实现随机显示星星特效
Jan 28 #Javascript
基于javascript实现全国省市二级联动下拉选择菜单
Jan 28 #Javascript
JS实现动态生成表格并提交表格数据向后端
Nov 25 #Javascript
jQuery+css实现的时钟效果(兼容各浏览器)
Jan 27 #Javascript
jQuery实现的分子运动小球碰撞效果
Jan 27 #Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
Jan 27 #Javascript
不用一句js代码初始化组件
Jan 27 #Javascript
You might like
PHP表单验证的3个函数ISSET()、empty()、is_numeric()的使用方法
2011/08/22 PHP
谨慎使用PHP的引用原因分析
2012/09/06 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
JavaScript的目的分析
2007/01/05 Javascript
Div自动滚动到末尾的代码
2008/10/26 Javascript
js自定义事件及事件交互原理概述(二)
2013/02/01 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
JS、DOM和JQuery之间的关系示例分析
2014/04/09 Javascript
加载列表时jquery获取ul中第一个li的属性
2014/11/02 Javascript
12行javascript代码绘制一个八卦图
2015/04/02 Javascript
javascript实现图片上传前台页面
2015/08/18 Javascript
JS实现的颜色实时渐变效果完整实例
2016/03/25 Javascript
详解vue嵌套路由-params传递参数
2017/05/23 Javascript
jQuery表单设置值的方法
2017/06/30 jQuery
ajax跨域访问遇到的问题及解决方案
2019/05/23 Javascript
JsonProperty 的使用方法详解
2019/10/11 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
Vue中函数防抖节流的理解及应用实现
2020/04/24 Javascript
使用graphics.py实现2048小游戏
2015/03/10 Python
django之自定义软删除Model的方法
2019/08/14 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
Python random模块制作简易的四位数验证码
2020/02/01 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
详解Python中如何将数据存储为json格式的文件
2020/11/18 Python
Python爬虫设置Cookie解决网站拦截并爬取蚂蚁短租的问题
2021/02/22 Python
HTML5之SVG 2D入门3—文本与图像及渲染文本介绍
2013/01/30 HTML / CSS
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
电力公司个人求职信范文
2014/02/04 职场文书
大学军训感言600字
2014/02/25 职场文书
有趣的广告词
2014/03/18 职场文书
《云房子》教学反思
2014/04/20 职场文书
部门活动策划方案
2014/08/16 职场文书
承诺书样本
2014/08/30 职场文书
迎国庆演讲稿
2014/09/05 职场文书
护士旷工检讨书
2015/08/15 职场文书
Java字符串逆序方法详情
2022/03/21 Java/Android