jquery+css实现Tab栏切换的代码实例


Posted in jQuery onMay 14, 2019

前几天面试碰到现场给写一个Tab栏切换的功能,思想基本上懂,但是好久没写过,一时要全部实现效果还真有点难。回来后,再把思路理一理,写一个,基础还是很重要的。

最终要实现的效果图如下:

jquery+css实现Tab栏切换的代码实例

(1)点击tab栏显示对应的内容,并且tab栏样式变化。实现方式:一般tab栏如果要做成比较好看的样式,会切两张图作为背景,一张用于选中时的背景,一张用于未选中的背景。这里为了简单,只用css设置样式。然后为每个tab绑定click事件,当触发click事件时,对应的内容div的display设置block,否则设置为none。

(2)当鼠标悬停在没有选中的tab栏上时,改变样式,移开时又恢复回来的样式。如果tab栏已选中,则鼠标是否悬停不影响样式。实现方式:为tab栏添加hover事件,当鼠标进入时,判断该tab栏是不是被选中(可以为了选中的tab栏设置一个class,只需要判断是否含有该class即可),在不选中的情况下再添加hover的样式。

完整代码如下(代码下载地址):

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8" />
 <title>tab标签</title>
 <link href="css/style.css" rel="external nofollow" type="text/css" rel="stylesheet">
</head>
<body>
 <div class="tab-contain">
 <!-- tab栏 -->
 <ul id="tabs">
  <li class="current"><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" title="tab1">One</a></li>
  <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" title="tab2">Two</a></li>
  <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" title="tab3">Three</a></li>
  <li><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" title="tab4">Four</a></li>
 </ul>
 <!-- 对应显示内容 -->
 <div id="content">
  <div id="tab1" class="item show">
  <h2>title 11111</h2>
  <p>text here!!!text here!!!text here!!!text here!!!text here!!!</p>
  <p>text here!!!text here!!!text here!!!text here!!!text here!!!text here!!!text here!!!text here!!!text here!!!text here!!!</p>
  </div>
  <div id="tab2" class="item">
  <h2>title 2222</h2>
  <p>text here!!!text here!!!text here!!</p>
  <p>text here!!!text here!!!text here!!!text here!text here!!!text here!!!text here!!!</p>
  </div>
  <div id="tab3" class="item">
  <h2>title 33333</h2>
  <p>text here!!!</p>
  <p>text here!!!text here!!!text here!!!text here!!!text here!!!text here!!!text here!!!text here!!!text here!!!text here!!!</p>
  </div>
  <div id="tab4" class="item">
  <h2>title 44444</h2>
  <p>text here!!!text here!!!text here!!!text here!!!text here!!!</p>
  <p>text here!!!text </p>
  </div>
 </div>
 </div>

 <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
 <script type="text/javascript" src="js.js"></script>
</body>
</html>

CSS:

.tab-contain{
 margin: 50px auto;
 width: 1000px;
 padding:100px;
 background: #7F7D7D;
}
#tabs {
 overflow: hidden;
 width: 100%;
 margin: 0;
 padding: 0;
 list-style: none;
}
#tabs li {
 float: left;
 margin: 0;
}
li a {
 position: relative;
 background: #ddd;
 padding: 10px 50px;
 float: left;
 text-decoration: none;
 color: #444;
 text-shadow: 0 1px 0 rgba(255, 255, 255, .8);
 border-radius: 20px 20px 0 0;
 box-shadow: 0 2px 2px rgba(0, 0, 0, .4);
}

 .current a{
 outline: 0;
 background: #fff;
  z-index: 4;
}
.hoverItem a{
 background: #AAC8B9;
}
#content {
 background: #fff;
 padding: 50px;
 height: 220px;
 position: relative;
 border-radius: 0 5px 5px 5px;
 box-shadow: 0 -2px 3px -2px rgba(0, 0, 0, .5);
}
.item{
 display: none;
}

.show{
 display: block;
}

JS:

$(function(){
  $('#tabs a').click(function(e) {
   e.preventDefault();    
   $('#tabs li').removeClass("current").removeClass("hoverItem");
   $(this).parent().addClass("current");
   $("#content div").removeClass("show");
   $('#' + $(this).attr('title')).addClass('show');
  });

  $('#tabs a').hover(function(){
  if(!$(this).parent().hasClass("current")){
   $(this).parent().addClass("hoverItem");
  }
  },function(){
  $(this).parent().removeClass("hoverItem");
  });
 });

以上所述是小编给大家介绍的jquery css实现Tab栏切换详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

jQuery 相关文章推荐
jQuery EasyUI之验证框validatebox实例详解
Apr 10 jQuery
jquery与js实现全选功能的区别
Jun 11 jQuery
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 jQuery
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
将jquery.qqFace.js表情转换成微信的字符码
Dec 01 jQuery
jquery实现侧边栏左右伸缩效果的示例
Dec 19 jQuery
JS文件中加载jquery.js的实例代码
May 05 jQuery
jQuery实现的简单对话框拖动功能示例
Jun 05 jQuery
解决jquery的ajax调取后端数据成功却渲染失败的问题
Aug 08 jQuery
Vue.js 通过jQuery ajax获取数据实现更新后重新渲染页面的方法
Aug 09 jQuery
jQuery实现图片下载代码
Jul 18 jQuery
jQuery Datatables 动态列+跨列合并实现代码
Jan 30 jQuery
jquery实现二级导航下拉菜单效果实例
May 14 #jQuery
JQuery获取可视区尺寸和文档尺寸及制作悬浮菜单示例
May 14 #jQuery
jquery 验证用户名是否重复代码实例
May 14 #jQuery
JQuery获取元素尺寸、位置及页面滚动事件应用示例
May 14 #jQuery
JQuery animate动画应用示例
May 14 #jQuery
jquery实现选项卡切换代码实例
May 14 #jQuery
JQuery样式操作、click事件以及索引值-选项卡应用示例
May 14 #jQuery
You might like
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
PHP5与MySQL数据库操作常用代码 收集
2010/03/21 PHP
php制作中间带自己定义图片二维码的方法
2014/01/27 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
jQuery 剧场版 你必须知道的javascript
2009/05/27 Javascript
多种方法判断Javascript对象是否存在
2013/09/22 Javascript
jquery的ajax简单结构示例代码
2014/02/17 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
javascript中callee与caller的区别分析
2015/04/20 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
使用 bootstrap modal遇到的问题小结
2016/11/09 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
利用js判断手机是否安装某个app的多种方案
2017/02/13 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
Node.js+jade抓取博客所有文章生成静态html文件的实例
2017/09/19 Javascript
JS实现去除数组中重复json的方法示例
2017/12/21 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
Python中的迭代器漫谈
2015/02/03 Python
python实现简单神经网络算法
2018/03/10 Python
对Python定时任务的启动和停止方法详解
2019/02/19 Python
python打包生成so文件的实现
2020/10/30 Python
Python lxml库的简单介绍及基本使用讲解
2020/12/22 Python
python中pyqtgraph知识点总结
2021/01/26 Python
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
煤矿班组长岗位职责
2013/12/29 职场文书
实验教师岗位职责
2014/02/13 职场文书
和睦家庭事迹
2014/05/14 职场文书
给学校的建议书范文
2014/05/15 职场文书
邀请书模板
2015/02/02 职场文书
街道社区活动报告
2015/02/05 职场文书
病房管理制度范本
2015/08/06 职场文书
pytorch 如何使用batch训练lstm网络
2021/05/28 Python