原生js实现tab选项卡切换

本文实例为大家分享了原生js实现tab选项卡切换效果的代码,供大家参考,具体内容如下

1.html部分 

<body>
  <div id="tab">
   <div class="tab_menu">
    <ul>
     <li class="selected"><a href="#">时事</a></li>
     <li><a href="#">体育</a></li>
     <li><a href="#">娱乐</a></li>
    </ul>
   </div>
   <div class="tab_box">
    <div>时事</div>
    <div class="hide">体育</div>
    <div class="hide">娱乐</div>
   </div>
  </div>
 </body>

2.css部分:样式部分实现方法多种多样,这是我写的简单的demo,我最不擅长的css ><...

   .tab_menu .selected{background-color:#aaa;}
   .tab_menu ul{height:30px;}
   .tab_menu ul li{float:left;list-style:none;width:50px;height:30px;color:#000;border:solid 1px gray;border-bottom:none; text-align:center;line-height:30px;margin-right:3px;}
   .tab_menu ul li a{text-decoration:none;}
   .tab_box{width:170px;height:150px;border:solid 1px gray;}
   .tab_box .hide{display:none;}

3.重要的js部分:

window.onload=function(){
    var oTab=document.getElementById('tab');
    var aLi=oTab.getElementsByTagName('li');
    var oTabBox=oTab.getElementsByTagName('div')[1];
    var aBox=oTabBox.getElementsByTagName('div');
    for(var i=0;i<aLi.length;i++){
     aLi[i].index=i;
     aLi[i].onclick=function(){
      for(var j=0;j<aLi.length;j++){
       aLi[j].className='';//取消菜单样式
       aBox[j].className='hide';//隐藏所有的tabDiv
      }
      aLi[this.index].className='selected';
      aBox[this.index].className='';
     }
    }
   }

这个简单粗暴,完全没有考虑如果tabMenu、tabBox有多个样式的情况,不适应项目只是一个思路。很多地方需要完善。下面考虑标签多个class的情况,不过一般都有多个class,现在就要用到去除某个class,添加class的技能了。

3.1原生js中class的添加及删除。

window.onload=function(){
    var oTab=document.getElementById('tab');
    var aLi=oTab.getElementsByTagName('li');
    var oTabBox=oTab.getElementsByTagName('div')[1];
    var aBox=oTabBox.getElementsByTagName('div');
    for(var i=0;i<aLi.length;i++){
     aLi[i].index=i;
     aLi[i].onclick=function(){
      for(var j=0;j<aLi.length;j++){
       var aClass=aLi[j].className.split(' ');//元素.className是一个字符串,切割成数组
       var aClass1=aBox[j].className.split(' ');//同样的方法得到box的
       for(var z=0;z<aClass.length;z++){
        if(aClass[z]=='selected'){
         aClass.splice(z,1);//利用数组的splice方法删除找到的这个类
        }
       }
       for(var k=0;k<aClass1.length;k++){
        if(aClass1[k]=='hide'){
         aClass1.splice(k,1);
        }
       }
       aLi[j].className=aClass.join(' ');//所有的menu都去除selected样式
       aBox[j].className+=' hide';//所有box都隐藏
       aBox[this.index].className=aClass1.join(' ');//当前box显示
       aLi[this.index].className+=' selected';//当前menu添加select样式
      }

     }
    }
   }

亲测有效,不过都写在一个方法里有点乱,而且类多的时候效率也是问题,不过类应该不很很多吧==以后再优化吧,这个功能用jquery很简单。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2016-08-30

跨浏览器通用、可重用的选项卡tab切换js代码

由于近来学了点js,于是我装逼道...不太难吧...就切一下display属性?同学无视我..说要搞个通用的...什么还要跟ajax交互..???我愣是没有听懂...到底要搞什么...权当作练手,我自己胡弄了一个. 需求:同学口中的通用我不知道神马意思...那我就按自己的理解吧.. ①跨浏览器,IE6+,FF,Chrome,Safari,Opera ②同一个页面可以用同一个js设置不同的选项卡. 说太多没啥米用,来看代码吧. 一.html部分(其实这还没啥好看的,设置了三个,前两个是一样的,通过

4种JavaScript实现简单tab选项卡切换的方法

本文实例讲解了4种JavaScript实现简单tab选项卡切换的方法,分享给大家供大家参考,具体内容如下 效果图: 方法一:for循环+if判断当前点击与自定义数组是否匹配 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>tab切换</title> <style type="text/cs

纯php打造的tab选项卡效果代码(不用js)

1.根据get判断,获取get生成css 复制代码 代码如下: <style type="text/css"> <?php if(!isset($_GET['city_id'])) { $city_id = 12; } else { $city_id = $_GET['city_id']; } echo '.a'.$city_id.' { color:red; } '; for($i=12;$i<=16;$i++) { if($i != $city_id) {

使用vue.js写一个tab选项卡效果

通常我们写tab选项卡的时候,一般都是用jq等去操作dom,给同级元素移除active类,然后,给被点击元素添加active类,但是在vue.js中,我们能不去操作dom我们就尽量不操作dom,那么该如何实现呢? 如果使用过vue-router,那么你会发现,vue-router在使用的时候其实就相当于一个tab选项卡,在点击之后,被点击的router-link元素会默认被添加上一个router-link-active的类,我们只需要设置这个类的样式即可.(当然,router-link-acti

Vue.js组件tabs实现选项卡切换效果

今天给大家分享一个小颖自己写的vue组件,因为小颖也才接触vue没多久,如果有什么不足的地方,希望大家提出来,小颖加以改正.以下就是具体如何实现tabs啦. 调用示例: <template> <div class="tabs-contents"> <!-- 调用tabs组件 --> <tabs :flag.sync='tabsShowFlag' :navtitle='navTitle' :navdata='navData'> <di

js实现tab选项卡函数代码

* { padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; font-size: 12px; padding-top: 0px; } BODY { padding-left: 20px; padding-top: 20px; } .wid240 { width: 242px; margin-bottom: 20px; } .wid180 { width: 182px; } .tab { border-b

js tab 选项卡

一般需要事先写好css样式等function tab(sId) { var tabs = document.getElementsByTagName("H2"); var boxs = document.getElementsByTagName("h3"); if ( boxs[sId].style.display=="block"){ boxs[sId].style.display="none"; tabs[sId].sty

js实现Tab选项卡切换效果

本文实例为大家分享了js实现Tab选项卡切换效果展示的具体代码,供大家参考,具体内容如下 html部分 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="tab.css"> <script src="tab.js&quo

javascript实现tabs选项卡切换效果(自写原生js)

现在的页面上有许多各种各样的页面效果,常用的有弹出层效果,无缝滚动效果,选项卡切换效果.今天分享一款自己用原生javascript写的选项卡切换效果,由于本人水平有限,如有问题请指出. 效果图如下:  html代码: 复制代码 代码如下: <!DOCTYPE HTML> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>js-tabs</

javascript+css 新闻显示tab 选项卡效果

我们_新闻显示选项卡效果(javascript+css) 新闻排行 国内 国际 社会 网评 新疆阜康铁路桥梁坍塌多节运煤车厢侧翻坠河 最高法:承诺不判赖昌星死刑没有超越法律程序 物权法:满70年住宅建设用地使用权将自动续期 弟弟被妻下药毒死男子买女尸为其配阴婚(图) 揭开郑州神枪手神秘面纱 头号狙击手是近视眼 美军高官:不排除和中国发生直接军事对抗可能 浙江东阳传奇富姐吴英涉嫌非法吸收存款被批捕 西方炒作"中国航母威胁论"称05年已正式服役 女孩生活无法自理请人大代表递交安乐死议案 建

JS+CSS实现的经典tab选项卡效果代码

本文实例讲述了JS+CSS实现的经典tab选项卡效果代码.分享给大家供大家参考.具体如下: 这是一款经典的JavaScript+CSS tab选项卡代码,由以前的一款改写而成,自认为不错的东西,发上来分享吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-css-jd-tab-cha-style-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitio

JS实现不规则TAB选项卡效果代码

本文实例讲述了JS实现不规则TAB选项卡效果代码.分享给大家供大家参考.具体如下: 这是一款不规则TAB选项卡效果,将中规中矩的方角换成了不规则的圆角,也就是这一换,倒让浏览者新鲜了不少,也使选项卡增多了几份灵感,不是吗? 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-box-tab-nav-style-menu-codes/ 具体代码如下: <html> <head> <meta http-equiv="C

JS实现图文并茂的tab选项卡效果示例【附demo源码下载】

本文实例讲述了JS实现图文并茂的tab选项卡效果.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <h

jquery实现通用的内容渐显Tab选项卡效果

本文实例讲述了jquery实现通用的内容渐显Tab选项卡效果.分享给大家供大家参考.具体如下: 这是一款网页常用的TAB选项卡功能,无鼠标操作的时候它可以自动轮换,美化一般,看上去有些粗糙,有兴趣使用的朋友可以进行细致修饰,相信会更漂亮的. 运行效果如下图所示: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-show-info-tab-nav-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD X

JS实现的不规则TAB选项卡效果代码

本文实例讲述了JS实现的不规则TAB选项卡效果代码.分享给大家供大家参考.具体如下: 这是一款采用菱形的选项卡效果,一改选项卡中规中矩的风格,效果非常不错,奉献给大家. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-bgz-tab-cha-style-codes/ 具体代码如下: <html> <head> <meta http-equiv="Content-Type" content="

js实现类似菜单风格的TAB选项卡效果代码

本文实例讲述了js实现类似菜单风格的TAB选项卡效果代码.分享给大家供大家参考.具体如下: 这是一款基于javascript实现的一组简洁选项卡代码,类似菜单风格的TAB选项卡,没有使用图片,因此有些地方处理的还不太到位,不介意使用图片修饰的朋友可以再次美化这上选项卡,风格有点类似于菜单. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-menu-style-tab-nav-codes/ 具体代码如下: <html xmlns="ht

JS实现黑色风格的网页TAB选项卡效果代码

本文实例讲述了JS实现黑色风格的网页TAB选项卡效果代码.分享给大家供大家参考.具体如下: 这是一款网页TAB选项卡JS代码,黑色超酷的风格,看了后你会喜欢的,很熟悉很经典的风格,似曾相识的感觉,希望大家喜欢. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-black-style-web-tab-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transition

jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果

本文实例讲述了jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果.分享给大家供大家参考.具体如下: 这款网页特效主要是tytabs.jquery.min.js插件的实例演示,一个带有漂亮渐变效果的TAB选项卡,演示了一个网页上设置两个选项卡,都是带有淡入淡出的渐变效果,为了演示效果,里面我随便弄了些文字,用时候自己删除吧. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-tytabs-tab-cha-m

Android利用Fragment实现Tab选项卡效果

利用Fragment实现Tab选项卡效果:  将RadioGroup与Fragment集合,实现tab选项卡效果,这里面最关键的几个文件: 1.FragmentTabAdapter类: /** *@Description: *@Author:Nate Robinson *@Since:2015-2-12 */ public class FragmentTabAdapter implements RadioGroup.OnCheckedChangeListener { private List<F