原生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 相关文章推荐
FormValid0.5版本发布,带ajax自定义验证例子
Aug 17 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
Jun 16 Javascript
js模式化窗口问题![window.dialogArguments]
Oct 30 Javascript
jquery.validate表单验证插件使用方法解析
Nov 07 Javascript
javascript基本数据类型及类型检测常用方法小结
Dec 14 Javascript
JS实现搜索框文字可删除功能
Dec 28 Javascript
jquery实现tab键进行选择后enter键触发click行为
Mar 29 jQuery
Node.js使用cookie保持登录的方法
May 11 Javascript
微信小程序中换行空格(多个空格)写法详解
Jul 10 Javascript
微信小程序实现收藏与取消收藏切换图片功能
Aug 03 Javascript
React通过redux-persist持久化数据存储的方法示例
Feb 14 Javascript
使用Typescript开发微信小程序的步骤详解
Jan 12 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
Terran魔法科技
2020/03/14 星际争霸
dedecms中使用php语句指南
2014/11/13 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
php常用字符函数实例小结
2016/12/29 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
php workerman定时任务的实现代码
2018/12/23 PHP
PHP创建XML接口示例
2019/07/04 PHP
asp 取文本框名称代码
2008/12/02 Javascript
ASP中Sub和Function的区别说明
2020/08/30 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
JavaScript之创意时钟项目(实例讲解)
2017/10/23 Javascript
vue项目中实现图片预览的公用组件功能
2018/10/26 Javascript
koa2的中间件功能及应用示例
2020/03/05 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
JavaScript编写开发动态时钟
2020/07/29 Javascript
[44:43]完美世界DOTA2联赛决赛日 FTD vs GXR 第一场 11.08
2020/11/11 DOTA
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
Python标准库之Sys模块使用详解
2015/05/23 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
Python制作爬虫采集小说
2015/10/25 Python
一个基于flask的web应用诞生 使用模板引擎和表单插件(2)
2017/04/11 Python
使用Eclipse如何开发python脚本
2018/04/11 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
1688平价精选商城:阿里集团旗下,工厂出厂价格直销
2017/04/24 全球购物
ASOS英国官网:英国在线时装和化妆品零售商
2017/05/19 全球购物
新西兰最大的品牌运动鞋购物网站:Platypus NZ
2017/10/27 全球购物
意大利独特而优质的家居用品:Fazzini
2018/12/05 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2013/07/12 面试题
会议邀请函范文
2014/01/09 职场文书
企业总经理岗位职责
2014/02/13 职场文书
检察院院长群众路线教育实践活动个人整改措施
2014/10/04 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS