js实现tab切换效果实例


Posted in Javascript onSeptember 16, 2015

直接先来个真相吧:

js实现tab切换效果实例 

【HTML代码】

<div id="menu">
<!--tag标题-->
  <ul id="nav">
    <li><a href="#" class="selected">tab1</a></li>
    <li><a href="#" class="">tab2</a></li>
    <li><a href="#" class="">tab3</a></li>
    <div style="clear:both"></div>
  </ul>
<!--二级菜单-->
  <div id="menu_con">
    <div class="tag" style="display:block">
      这是TAB切换效果区域1
     </div> 
    <div class="tag" style="display:none">
      这是TAB切换效果区域2  
     </div> 
    <div class="tag" style="display:none">
      这是TAB切换效果区域3
    </div> 
</div>
</div>

【js】

/**
 * tabs
 * @author  橡树小屋
 */
var tabs=function(){
  function tag(name,elem){
    return (elem||document).getElementsByTagName(name);
  }
  //获得相应ID的元素
  function id(name){
    return document.getElementById(name);
  }
  function first(elem){
    elem=elem.firstChild;
    return elem&&elem.nodeType==1? elem:next(elem);
  }
  function next(elem){
    do{
      elem=elem.nextSibling; 
    }while(
      elem&&elem.nodeType!=1 
    )
    return elem;
  }
  return {
    set:function(elemId,tabId){
      var elem=tag("li",id(elemId));
      var tabs=tag("div",id(tabId));
      var listNum=elem.length;
      var tabNum=tabs.length;
      for(var i=0;i<listNum;i++){
          elem[i].onclick=(function(i){
            return function(){
              for(var j=0;j<tabNum;j++){
                if(i==j){
                  tabs[j].style.display="block";
                  //alert(elem[j].firstChild);
                  elem[j].firstChild.className="selected";
                }
                else{
                  tabs[j].style.display="none";
                  elem[j].firstChild.className="";
                }
              }
            }
          })(i)
      }
    }
  }
}();
window.onload=function(){
  tabs.set("nav","menu_con");
}

【CSS】

body{ background:#FFF;}
a{color:#585858}
#menu{width:360px;}
/*-------------------nav样式----------------------*/
#menu #nav {display:block;width:100%;padding:0;margin:0;list-style:none;
 background:url(../images/bg.gif)}
#menu #nav li {float:left;width:120px;}
#menu #nav li a {display:block;line-height:27px;text-decoration:none;padding:0 0 0 5px; text-align:center}
 
/*-------------------列表标题样式----------------------*/
#menu_con{ width:358px; height:135px;border:1px solid #BF9660; border-top:none}
.selected{background:url(../images/tag_bg.gif);}
.clear{ clear:both}

调用方法:

tabs.set("nav","menu_con");

代码下载 点击这里

这个实例只是简单实现了点击切换的效果,还有许多功能可以添加,大家一起动手实践一下吧。

Javascript 相关文章推荐
javascript中xml操作实现代码
Nov 21 Javascript
根据IP的地址,区分不同的地区,查看不同的网站页面的js代码
Feb 26 Javascript
js Select下拉列表框进行多选、移除、交换内容的具体实现方法
Aug 13 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
Dec 10 Javascript
jQuery基础语法实例入门
Dec 23 Javascript
angular中使用路由和$location切换视图
Jan 23 Javascript
AngularJS过滤器filter用法分析
Dec 11 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
Dec 11 Javascript
js 客户端打印html 并且去掉页眉、页脚的实例
Nov 03 Javascript
详解Angular结合zTree异步加载节点数据
Jan 20 Javascript
使用watch监听路由变化和watch监听对象的实例
Feb 24 Javascript
关于React Native 无法链接模拟器的问题
Jun 21 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
Sep 16 #Javascript
jQuery图片轮播滚动切换代码分享
Apr 20 #Javascript
JS实现光滑展开合拢的菜单效果代码
Sep 16 #Javascript
jQuery实现两款有动画功能的导航菜单代码
Sep 16 #Javascript
javascript中的previousSibling和nextSibling的正确用法
Sep 16 #Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 #Javascript
JS+CSS实现的经典tab选项卡效果代码
Sep 16 #Javascript
You might like
15种PHP Encoder的比较
2007/03/06 PHP
php+mysql 实现身份验证代码
2010/03/24 PHP
基于PHP实现假装商品限时抢购繁忙的效果
2015/10/16 PHP
项目中应用Redis+Php的场景
2016/05/22 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
2020/08/20 PHP
javascript变量作用域使用中常见错误总结
2013/03/26 Javascript
深入分析escape()、encodeURI()、encodeURIComponent()的区别及示例
2014/08/04 Javascript
基于js实现投票的实例代码
2015/08/04 Javascript
怎样判断jQuery当前元素是隐藏还是显示
2016/11/23 Javascript
javascript实现下雨效果
2017/03/27 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
vue绑定事件后获取绑定事件中的this方法
2018/09/15 Javascript
基于JavaScript canvas绘制贝塞尔曲线
2018/12/25 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
微信小程序图表插件wx-charts用法实例详解
2019/05/20 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
小程序点餐界面添加购物车左右摆动动画
2020/09/23 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
Python中selenium实现文件上传所有方法整理总结
2017/04/01 Python
python中append实例用法总结
2019/07/30 Python
把vgg-face.mat权重迁移到pytorch模型示例
2019/12/27 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
2020/04/22 Python
Python字符串函数strip()原理及用法详解
2020/07/23 Python
Python将list元素转存为CSV文件的实现
2020/11/16 Python
市场安全管理制度
2014/01/26 职场文书
课程改革实施方案
2014/03/16 职场文书
《月球之谜》教学反思
2014/04/10 职场文书
校长师德师风自我剖析材料
2014/09/29 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
来探秘“德国中小企业”的成功之道
2019/07/26 职场文书