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封装的分页组件
Jun 26 jQuery
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 jQuery
jQuery实现对网页节点的增删改查功能示例
Sep 18 jQuery
bootstrap可编辑下拉框jquery.editable-select
Oct 12 jQuery
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
jQuery 实现左右两侧菜单添加、移除功能
Jan 02 jQuery
JQuery判断radio单选框是否选中并获取值的方法
Jan 17 jQuery
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
Aug 27 jQuery
jQuery实现王者荣耀手风琴效果
Jan 17 jQuery
jquery传参及获取方式(两种方式)
Feb 13 jQuery
jquery自定义组件实例详解
Dec 31 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
PHP用户指南-cookies部分
2006/10/09 PHP
PHP+Mysql+jQuery中国地图区域数据统计实例讲解
2015/10/10 PHP
PHP实现的随机IP函数【国内IP段】
2016/07/20 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
jsvascript图像处理—(计算机视觉应用)图像金字塔
2013/01/15 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
javascript去掉代码里面的注释
2015/07/24 Javascript
Jquery操作Ajax方法小结
2015/11/29 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
2016/05/28 Javascript
JavaScript两种计时器的实例讲解
2019/01/31 Javascript
Vue实现table上下移动功能示例
2019/02/21 Javascript
Vue自定义指令上报Google Analytics事件统计的方法
2019/02/25 Javascript
让 babel webpack vue 配置文件支持智能提示的方法
2019/06/22 Javascript
swiper Scrollbar滚动条组件详解
2019/09/08 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
JavaScript undefined及null区别实例解析
2020/07/21 Javascript
js数组中去除重复值的几种方法
2020/08/03 Javascript
Python对两个有序列表进行合并和排序的例子
2014/06/13 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
一文带你了解Python中的字符串是什么
2018/11/20 Python
解决Pycharm后台indexing导致不能run的问题
2019/06/27 Python
Django使用Channels实现WebSocket的方法
2019/07/28 Python
python3读取csv文件任意行列代码实例
2020/01/13 Python
python3 logging日志封装实例
2020/04/08 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
2020/06/03 Python
python网络爬虫实现发送短信验证码的方法
2021/02/25 Python
HTML5的Geolocation地理位置定位API使用教程
2016/05/12 HTML / CSS
波兰家具和室内装饰品购物网站:Vivre
2018/04/10 全球购物
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
介绍一下.net和Java的特点和区别
2012/09/26 面试题
大学应届毕业生个人求职信
2013/09/23 职场文书
国际商务专业职业生涯规划书范文
2014/01/17 职场文书
激励口号大全
2014/06/17 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
2021/05/31 Python
7个关于Python的经典基础案例
2021/11/07 Python