原生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 相关文章推荐
jQuery中andSelf()方法用法实例
Jan 08 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
May 11 Javascript
第一次接触神奇的Bootstrap网格系统
Jul 27 Javascript
基于JavaScript实现在新的tab页打开url
Aug 04 Javascript
layui获取选中行数据的实例讲解
Aug 19 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
Nov 25 Javascript
jQuery实现点击旋转,再点击恢复初始状态动画效果示例
Dec 11 jQuery
使用 webpack 插件自动生成 vue 路由文件的方法
Aug 20 Javascript
layui 实现table翻页滚动条位置保持不变的例子
Sep 05 Javascript
js实现tab栏切换效果
Aug 02 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
小程序实现筛子抽奖
May 26 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处理JSON字符串key缺少双引号的解决方法
2014/09/16 PHP
PHP实现阳历到农历转换的类实例
2015/03/07 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
PHP实现的一致性Hash算法详解【分布式算法】
2018/03/31 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
推荐40款强大的 jQuery 导航插件和教程(上篇)
2012/09/14 Javascript
动态加载js的方法汇总
2015/02/13 Javascript
jQuery经过一段时间自动隐藏指定元素的方法
2015/03/17 Javascript
浅析node连接数据库(express+mysql)
2015/11/30 Javascript
原生js实现弹出层效果
2017/01/20 Javascript
详解Nodejs之静态资源处理
2017/06/05 NodeJs
开发Vue树形组件的示例代码
2017/12/21 Javascript
Vue SSR 组件加载问题
2018/05/02 Javascript
原生JS实现获取及修改CSS样式的方法
2018/09/04 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
2015/04/05 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
python实现搜索文本文件内容脚本
2018/06/22 Python
Python常见排序操作示例【字典、列表、指定元素等】
2018/08/15 Python
python对csv文件追加写入列的方法
2019/08/01 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
解决tensorflow读取本地MNITS_data失败的原因
2020/06/22 Python
python基于爬虫+django,打造个性化API接口
2021/01/21 Python
分享CSS3制作卡片式图片的方法
2016/07/08 HTML / CSS
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
实习护理工作自我评价
2013/09/25 职场文书
消防安全汇报材料
2014/02/08 职场文书
大二学生自我检讨书
2014/10/23 职场文书
2014年关工委工作总结
2014/11/17 职场文书
限期整改通知书
2015/04/22 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
2019大学生社会实践报告汇总
2019/08/16 职场文书
python基础之类方法和静态方法
2021/10/24 Python