原生js和jQuery写的网页选项卡特效对比


Posted in Javascript onApril 27, 2015

总的来说思路比较简单,就是先获取节点,然后对节点进行相应的处理,下面是完整的页面代码:

原生js:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>原生js tab</title>
<style type="text/css">
.tab{
  margin:10px auto;
  position:relative;
  width:300px;
}
ul,li{
  list-style-type:none;
  padding:0;
  margin:0;
  font:13px/20px SimSun,arial;
  color:#333;
  text-align:center;
}
.tabTltle ul li{
 float:left;
 position:relative;
 background:#fefefe;
 background:-webkit-gradient(linear,left top,left bottom, from(#fefefe), to(#ededed));
 padding:7px 15px;
 border:1px #ddd solid;
 margin-right:-1px;
 cursor:pointer;

}
.tabTltle ul li.active{
  background:#fff;
  font-weight: bold;
}
.clearfix{
}
.clearfix:after{
  display:block;
  clear:both;
  overflow:hidden;
  content:"";
}
.tabConn{
  border:1px #eee solid;
  position:relative;
  height:100px
}
.tabConn div{
  position:absolute;
  opacity:0;
  filter:alpha(opacity=0);
  padding:5px;
  text-align:center;
  width:100%;
}
.tabConn div.current{
  opacity:1;
  filter:alpha(opacity=100);
}
</style>
</head>
<body>
  <div id="tab" class="tab">
    <div class="tabTltle">
      <ul class="clearfix">
        <li class="active">标题一</li>
        <li>标题二</li>
        <li>标题三</li>
        <li>标题四</li>
      </ul>
    </div>
    <div class="tabConn">
      <div class="current">aaaaaaaaaaaaaaa</div>
      <div>bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</div>
      <div>cccccccccccccccccccccccccccccccc</div>
      <div>ddddddddddddddddddddddddddddd</div>
    </div>
  </div>
<script type="text/javascript">
 (function(){
   var tab = document.getElementById("tab");
   var tabList = tab.getElementsByTagName("div")[0].getElementsByTagName("li");
   var tabConn = tab.getElementsByTagName("div")[1].getElementsByTagName("div");for(var i=0;i<tabList.length;i++){
    tabList[i].index = i;
    tabList[i].onclick = function(){
      showConn(this.index);
    }
  }
  function showConn(_index){
    var index = _index;for(var j=0;j<tabList.length;j++){
      tabList[j].className = "";
      tabConn[j].className = "";
      tabConn[j].style.opacity=0;
    }
    tabConn[index].className="current";
    tabList[index].className="active";
  }
 })();
</script>
</body>
</html>

下面我们来看一下jQuery写的(css共用,需要引进jQuery库):

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>jQuery tab</title>
<script type="text/javascript" src="js/jquery-1.8.1.min.js"></script>
<style type="text/css">
.tab{
 margin:10px auto;
 position:relative;
 width:300px;
}
ul,li{
 list-style-type:none;
 padding:0;
 margin:0;
 font:13px/20px SimSun,arial;
 color:#333;
 text-align:center;
}
.tabTltle ul li{
 float:left;
 position:relative;
 background:#fefefe;
 background:-webkit-gradient(linear,left top,left bottom, from(#fefefe), to(#ededed));
 padding:7px 15px;
 border:1px #ddd solid;
 margin-right:-1px;
 cursor:pointer;

}
.tabTltle ul li.active{
 background:#fff;
 font-weight: bold;
}
.clearfix{
}
.clearfix:after{
 display:block;
 clear:both;
 overflow:hidden;
 content:"";
}
.tabConn{
 border:1px #eee solid;
 position:relative;
 height:100px
}
.tabConn div{
 position:absolute;
 opacity:0;
 filter:alpha(opacity=0);
 padding:5px;
 text-align:center;
 width:100%;
}
.tabConn div.current{
 opacity:1;
 filter:alpha(opacity=100);
}
</style>
</head>
<body>
<h3>jQuery写的选项卡:</h3>
 <div id="tab2" class="tab">
  <div class="tabTltle tab-title">
   <ul class="clearfix">
    <li class="active">标题一</li>
    <li>标题二</li>
    <li>标题三</li>
    <li>标题四</li>
   </ul>
  </div>
  <div class="tabConn tab-conn">
   <div class="current">aaaaaaaaaaaaaaa</div>
   <div>bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb</div>
   <div>cccccccccccccccccccccccccccccccc</div>
   <div>ddddddddddddddddddddddddddddd</div>
  </div>
 </div>
<script type="text/javascript">
$(document).ready(function(){
 var $tabTitle = $('.tab-title').find('li');
 var $tabList = $('.tab-conn > div');
 $tabTitle.click(function(){
  $tabTitle.each(function(){
   $tabTitle.removeClass('active');
  });
  var index = $tabTitle.index(this);
  $(this).addClass('active'); 
  $tabList.eq(index).addClass('current').siblings().removeClass('current');
 });
});
</script>
</body>
</html>

是不是简单了好多!

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
30个最佳jQuery Lightbox效果插件分享
Apr 11 Javascript
jQuery的animate函数实现图文切换动画效果
May 03 Javascript
JavaScript来实现打开链接页面的简单实例
Jun 02 Javascript
jquery插件autocomplete用法示例
Jul 01 Javascript
jQuery操作cookie
Aug 08 Javascript
jQuery grep()方法详解及实例代码
Oct 30 Javascript
vue.js获取数据库数据实例代码
May 26 Javascript
详解Vue2.0配置mint-ui踩过的那些坑
Apr 23 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
Jun 05 Javascript
javascript中的with语句学习笔记及用法
Feb 17 Javascript
webpack安装配置与常见使用过程详解(结合vue)
Jun 01 Javascript
vue中使用router全局守卫实现页面拦截的示例
Oct 23 Javascript
javascript实现淘宝幻灯片广告展示效果
Apr 27 #Javascript
jquery实现标签上移、下移、置顶
Apr 26 #Javascript
jquery ui resize 中border-box的bug修正
Apr 26 #Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
Apr 26 #Javascript
jquery获取节点名称
Apr 26 #Javascript
jQuery实现鼠标经过提示信息的地图热点效果
Apr 26 #Javascript
jquery插件qrcode在线生成二维码
Apr 26 #Javascript
You might like
PHP中error_log()函数的使用方法
2015/01/20 PHP
比较完整的微信开发php代码
2016/08/02 PHP
php 解决扫描二维码下载跳转问题
2017/01/13 PHP
laravel 执行迁移回滚示例
2019/10/23 PHP
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
jquery indexOf使用方法
2013/08/19 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
nodejs中使用monk访问mongodb
2014/07/06 NodeJs
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
网页前端登录js按Enter回车键实现登陆的两种方法
2016/05/10 Javascript
jQuery展示表格点击变色、全选、删除
2017/01/05 Javascript
canvas绘制表盘时钟
2017/01/23 Javascript
node 命令方式启动修改端口的方法
2018/05/12 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
[57:53]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#3OG VS VP
2016/03/03 DOTA
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
浅谈Python由__dict__和dir()引发的一些思考
2017/10/30 Python
Python判断文件和字符串编码类型的实例
2017/12/21 Python
python子线程退出及线程退出控制的代码
2019/10/16 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
python序列化与数据持久化实例详解
2019/12/20 Python
python ubplot使用方法解析
2020/01/10 Python
Python3 selenium 实现QQ群接龙自动化功能
2020/04/17 Python
序列化Python对象的方法
2020/08/01 Python
详解Pycharm与anaconda安装配置指南
2020/08/25 Python
美国名牌香水折扣网站:Hottperfume
2021/02/10 全球购物
会计毕业生自荐信
2013/11/21 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
留学生求职信
2014/06/03 职场文书
岗位竞聘报告范文
2014/11/06 职场文书
2014年妇幼卫生工作总结
2014/12/09 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
2016年5月份红领巾广播稿
2015/12/21 职场文书