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 相关文章推荐
效率高的Javscript字符串替换函数的benchmark
Aug 02 Javascript
Jquery 插件开发笔记整理
Jan 17 Javascript
javascript 图片裁剪技巧解读
Nov 15 Javascript
JavaScript实现Java中StringBuffer的方法
Feb 09 Javascript
jQuery实现指定内容滚动同时左侧或其它地方不滚动的方法
Aug 08 Javascript
基于zepto的移动端轻量级日期插件--date_picker
Mar 04 Javascript
Javascript将JSON日期格式化
Aug 23 Javascript
bootstrap选项卡使用方法解析
Jan 11 Javascript
手机注册发送验证码倒计时的简单实例
Nov 15 Javascript
JS中的算法与数据结构之栈(Stack)实例详解
Aug 20 Javascript
vue实现Input输入框模糊查询方法
Jan 29 Javascript
TypeScript 内置高级类型编程示例
Sep 23 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
php daodb插入、更新与删除数据
2009/03/19 PHP
PHP保留两位小数并且四舍五入及不四舍五入的方法
2013/09/22 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
php写的AES加密解密类分享
2014/06/20 PHP
PHP微信开发之查询城市天气
2016/06/23 PHP
PHP实现多图上传(结合uploadify插件)思路分析
2016/11/30 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
漂亮的widgets,支持换肤和后期开发新皮肤(2007-4-27已更新1.7alpha)
2007/04/27 Javascript
js中call与apply的用法小结
2013/12/28 Javascript
Javascript 正则表达式实现为数字添加千位分隔符
2015/03/10 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
Nodejs实现短信验证码功能
2017/02/09 NodeJs
Angular.JS利用ng-disabled属性和ng-model实现禁用button效果
2017/04/05 Javascript
node.js中使用Export和Import的方法
2017/09/18 Javascript
webpack@v4升级踩坑(小结)
2018/10/08 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
js实现点赞按钮功能的实例代码
2020/03/06 Javascript
Vue 中如何将函数作为 props 传递给组件的实现代码
2020/05/12 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
[03:03]2014DOTA2西雅图国际邀请赛 Alliance战队巡礼
2014/07/07 DOTA
python中的多重继承实例讲解
2014/09/28 Python
Python网站验证码识别
2016/01/25 Python
TensorFlow实现AutoEncoder自编码器
2018/03/09 Python
python3利用venv配置虚拟环境及过程中的小问题小结
2018/08/01 Python
解决TensorFlow训练内存不断增长,进程被杀死问题
2020/02/05 Python
Flask和pyecharts实现动态数据可视化
2020/02/26 Python
使用html5实现表格实现标题合并的实例代码
2019/05/13 HTML / CSS
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
企业总经理任命书
2014/06/05 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
服务员态度差检讨书
2014/10/28 职场文书
督导岗位职责范本
2015/04/10 职场文书
2016关于读书活动的心得体会
2016/01/14 职场文书
MySQL删除和插入数据很慢的问题解决
2021/06/03 MySQL
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
js前端图片加载异常兜底方案
2022/06/21 Javascript