原生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 相关文章推荐
Javascript delete 引用类型对象
Nov 01 Javascript
jquery组件使用中遇到的问题整理及解决
Feb 21 Javascript
通过JS动态创建一个html DOM元素并显示
Oct 15 Javascript
node.js中的定时器nextTick()和setImmediate()区别分析
Nov 26 Javascript
javascript 实现 原路返回
Jan 21 Javascript
基于jQuery实现网页进度显示插件
Mar 04 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
Backbone中View之间传值的学习心得
Aug 09 Javascript
Vue实现动态添加或者删除对象和对象数组的操作方法
Sep 21 Javascript
微信小程序学习笔记之文件上传、下载操作图文详解
Mar 29 Javascript
npm 语义版本控制详解
Sep 10 Javascript
Node实现搜索框进行模糊查询
Jun 28 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+ajax做仿百度搜索下拉自动提示框(有实例)
2012/08/21 PHP
php广告加载类用法实例
2014/09/23 PHP
php读取flash文件高宽帧数背景颜色的方法
2015/01/06 PHP
php实现json编码的方法
2015/07/30 PHP
php版微信自动登录并获取昵称的方法
2016/09/23 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
2019/12/03 PHP
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
jQuery Lightbox 图片展示插件使用说明
2010/04/25 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
javascript面向对象编程代码
2011/12/19 Javascript
jquery动画3.创建一个带遮罩效果的图片走廊
2012/08/24 Javascript
JavaScript获取两个数组交集的方法
2015/06/09 Javascript
实例讲解jQuery EasyUI tree中state属性慎用
2016/04/01 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
微信小程序 利用css实现遮罩效果实例详解
2017/01/21 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
js学习总结之dom2级事件基础知识详解
2017/07/27 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
layui之table checkbox初始化时选中对应选项的方法
2019/09/02 Javascript
小程序实现左滑删除的效果的实例代码
2020/10/19 Javascript
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
python 文件操作删除某行的实例
2017/09/04 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
详解Python匿名函数(lambda函数)
2019/04/19 Python
django 信号调度机制详解
2019/07/19 Python
Python基础类继承重写实现原理解析
2020/04/03 Python
python opencv 实现读取、显示、写入图像的方法
2020/06/08 Python
Backcountry旗下的户外商品闪购网站:steep&cheap
2016/09/22 全球购物
英国第一职业高尔夫商店:Clickgolf.co.uk
2020/11/18 全球购物
怎么样写好简历中的自我评价
2013/10/25 职场文书
适用于所有创业者的创业计划书
2014/02/05 职场文书
小学作文之描写天气
2019/08/15 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android