js实现tab切换效果


Posted in Javascript onFebruary 16, 2017

效果如下:

js实现tab切换效果

代码如下:

<!DOCTYPE html > 
<html> 
<head> 
<meta charset="utf-8" /> 
<title>js封装一个tab效果</title> 
<style type="text/css"> 
*{margin:0; padding:0;}
body { font:12px/1.8 Arial; color:#666;}
.wrapper { width:500px; border:1px solid #e6e6e6; margin:0 auto; padding:50px;}
/*--=tabPanel--*/
#tab{border:1px solid #ccc;}
#tab .tab-bd{border-top:none;margin:0 auto;padding:10px;text-align:left;height:120px;position:relative}
.tab-nav{margin:0 auto;padding:0;background:#eee;height:26px;}
.tab-nav li{display:inline;list-style:none outside none;width:90px;height:26px;float:left;line-height:26px;text-align:center;}
.tab-nav li a{color:#555;display:inline-block}
.tab-nav li a:hover,.tab-nav li.hover a{text-decoration:none;background:#fff;color:#000;display:block; }
.hidden{display:none}
</style> 
<script type="text/javascript">
function tabPanel(param){
 var defaultIndex=param["default"]||0,//设置显示的页面
 panelobj=param["panel"],//设置tab容器
 defalutClass=param["defalutStyle"]||"",//设置tab菜单项的普通样式
 hoverClass=param["hoverStyle"]||"hover",//设置鼠标移到tab菜单项的样式
 currentIndex=defaultIndex,
 menus=_$(panelobj).getElementsByTagName("ul")[0].getElementsByTagName("li"),
 contents=_$(panelobj).getElementsByTagName("ul")[1].getElementsByTagName("li"),
 menuNumber=menus.length,
 hidden="hidden";
 for(var i=0;i<menuNumber;i++){
 _setClass(contents[0],hoverClass);
 _setClass(contents[i],hidden);
 _setClass(menus[i],defalutClass);
 (function(i){
  menus[i].onmouseover=function(){
  var old=menus[currentIndex];
  _setClass(old,defalutClass);
  _setClass(contents[currentIndex],hidden);
  var cur=menus[i];
  _setClass(cur,hoverClass);
  currentIndex=i;
  _setClass(contents[i],"");
  };
 })(i);
 }
 _setClass(menus[currentIndex],hoverClass);
 _setClass(contents[currentIndex],"");
 //便利函数
 function _setClass(obj,className){obj.className=className}
 function _$(oid){return typeof(oid) == "string"?document.getElementById(oid):oid}
}
</script>
<body> 
<div class="wrapper">
<div id="tab">
 <!-- tabHead -->
 <ul class="tab-nav">
 <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >交易安全</a></li>
 <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >淘宝大学</a></li>
 <li><a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" rel="external nofollow" >爱心</a></li>
 </ul>
 <!-- tabPanel-->
 <ul class="tab-bd">
 <li>
  1111
 </li>
 <li>
  222
 </li>
 <li>
  333
 </li>
 </ul>
</div>
<script type="text/javascript">
tabPanel({"panel":"tab"});//panel为必填项,default、defalutStyle、hoverStyle为选填项
</script>
</div>
</body> 
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
javascript自定义startWith()和endWith()的两种方法
Nov 11 Javascript
express的中间件basicAuth详解
Dec 04 Javascript
javascript实现避免页面按钮重复提交
Jan 08 Javascript
Javascript中的getUTCHours()方法使用详解
Jun 10 Javascript
JavaScript中字符串拼接的基本方法
Jul 07 Javascript
javascript编写贪吃蛇游戏
Jul 07 Javascript
利用Angularjs和原生JS分别实现动态效果的输入框
Sep 01 Javascript
JavaScript中const、var和let区别浅析
Oct 11 Javascript
JS查找英文文章中出现频率最高的单词
Mar 20 Javascript
JavaScript简单实现的仿微博留言功能示例
Jan 17 Javascript
Vue.js实现大屏数字滚动翻转效果
Nov 29 Javascript
使用PreloadJS加载图片资源的基础方法详解
Feb 03 Javascript
jquery实现自适应banner焦点图
Feb 16 #Javascript
js 作用域和变量详解
Feb 16 #Javascript
利用Chrome DevTools直接调试Node.js和JavaScript的方法详解(并行)
Feb 16 #Javascript
js面向对象编程总结
Feb 16 #Javascript
gulp加批处理(.bat)实现ng多应用一键自动化构建
Feb 16 #Javascript
JS实现DIV高度自适应窗口示例
Feb 16 #Javascript
Js apply方法详解
Feb 16 #Javascript
You might like
人大复印资料处理程序_输入篇
2006/10/09 PHP
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
PHP的serialize序列化数据以及JSON格式化数据分析
2015/10/10 PHP
php socket通信(tcp/udp)实例分析
2016/02/14 PHP
PHP递归获取目录内所有文件的实现方法
2016/11/01 PHP
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
学JavaScript七大注意事项【必看】
2016/05/04 Javascript
基于bootstrap实现广告轮播带图片和文字效果
2016/07/22 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
2017/03/23 jQuery
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
Node.js中的cluster模块深入解读
2018/06/11 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
前后端常见的几种鉴权方式(小结)
2019/08/04 Javascript
小程序外卖订单界面的示例代码
2019/12/30 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
vue中的.$mount('#app')手动挂载操作
2020/09/02 Javascript
[44:51]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第二场
2018/04/05 DOTA
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
pygame游戏之旅 游戏中添加显示文字
2018/11/20 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
html5跨域通讯之postMessage的用法总结
2013/11/07 HTML / CSS
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
adidas爱尔兰官方网站:阿迪达斯运动鞋和运动服
2019/11/01 全球购物
博柏利美国官方网站:Burberry美国
2020/11/19 全球购物
Overload和Override的区别
2012/09/02 面试题
大学生就业推荐信范文
2013/11/29 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
Canvas三种动态画圆实现方法说明(小结)
2021/04/16 Javascript