原生javascript写的网页选项卡和jQuery写的比较

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

<!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>

是不是简单了好多!

时间: 2024-08-03 19:31:12

原生javascript写的网页选项卡和jQuery写的比较的相关文章

原生javascript 改写的tab选项卡

<!--css部分--> <style> *{ margin: 0; padding: 0; } ul,li{ list-style: none } .tabbox{ width: 600px; clear: both; overflow: hidden; margin: 0 auto; border: 1px solid #ccc; } ul.tabnav{ width: 600px; height: 30px; border-bottom: 1px solid #ccc; }

为什么原生 JavaScript 开发越来越多受欢迎?是否应该跟风用原生JavaScript代替 jQuery等库?

本文标签:  jQuery的作用 原生JavaScript优势 jQuery官网 jQuery处理DOM和跨浏览器 JavaScript新特性 互联网杂谈 随着 JavaScript 本身的完善,越来越多的人开始喜欢使用原生 JavaScript 开发代替各种库,其中不少人发出了用原生 JavaScript 代替 jQuery 的声音.这并不是什么坏事,但也不见得就是好事.如果你真的想把 jQuery从前端依赖库中移除掉,我建议你慎重考虑. 首先 jQuery 是一个第三方库.库存在的价值之一在

为什么要用原生 JavaScript 代替 jQuery?

随着 JavaScript 本身的完善,越来越多的人开始喜欢使用原生 JavaScript 开发代替各种库,其中不少人发出了用原生 JavaScript 代替 jQuery 的声音.这并不是什么坏事,但也不见得就是好事.如果你真的想把 jQuery 从前端依赖库中移除掉,我建议你慎重考虑. 首先 jQuery 是一个第三方库.库存在的价值之一在于它能极大地简化开发.一般情况下,第三方库都是由原生语言特性和基础 API 库实现的.因此,理论上来说,任何库第三方库都是可以用原生语言特性代替的,问题在

原生javaScript仿写jQuery的例子

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>原生javaScript仿写jQuery</title> </head> <body> <div> <div class="wrap"> <input type="text" /> <input

四种常见的提示弹出框(success,warning,error,loading)原生JavaScript和jQuery分别实现

虽然说现在官方的自带插件已经有很多了,但是有时候往往不能满足我们的需求,下面我简单介绍一些 常见的四种提示弹出框(success,loading,error,warning),我分别用原生JavaScript和jQuery来介绍分享给各位博友! 一.首先介绍原生JavaScript来实现四种提示弹出框: 第一步:先看看html的建立 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:

常见的dom操作----原生JavaScript与jQuery

1.创建元素 文本节点 JavaScript: document.createElement(),只接收一个参数,创建后需要手动将其添加到文档树中,例如: var newDiv = document.createElement("div");if(document.body){ document.body.appendChild(newDiv);}else{ document.documentElement.appendChild(newDiv);} document.createTe

抛弃jQuery,拥抱原生JavaScript

前端发展很快,现代浏览器原生 API 已经足够好用.我们并不需要为了操作 DOM.Event 等再学习一下 jQuery 的 API.同时由于 React.Angular.Vue 等框架的流行,直接操作 DOM 不再是好的模式,jQuery 使用场景大大减少.因此我们项目组在双十一后抽了一周时间,把所有代码中的 jQuery 移除.下面总结一下: Why not jQuery 1. 模式变革 jQuery 代表着传统的以 DOM 为中心的开发模式,但现在复杂页面开发流行的是以 React 为代表

你可能不需要 jQuery!使用原生 JavaScript 进行开发

jquery 转原生js 的一些方法 / jq转js / jquery与js. 很多的 JavaScript 开发人员,包括我在内,都很喜欢 jQuery.因为它的简单,因为它有很多丰富的插件可供使用,和其它优秀的工具一样,jQuery 让我们开发人员能够更轻松的开发网站和 Web 应用. 然而,另一方面,作为前端开发的基础框架,jQuery 包含大量的兼容性代码和扩展功能,其中有很多在你的整个项目中可能都不会用到.其实如果你只是针对现代浏览器,很多功能使用原生的 JavaScript 就可以实

超简单的网页选项卡---jQuery

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>网页选项卡</title> <script src="jquery-1.4.2.js"></script> <script type="text/javascript"> $(funct