选项卡切换在页面中比较常见,这里是我利用js闭包还有setTimeout定时器实现的一个比较实用的选项卡功能。

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>tab选项卡</title>
<style>
*{margin:0;padding:0;font-size: 12px;}
body{background: #fff;}
ul{list-style: none;}
.none{display:none;}
.tab{width:598px;height:135px;margin:20px auto;border:1px #e8e8e8 solid;}
.tag-box{height:30px;position: relative;overflow: hidden;}
.tag{position:absolute;left:-1px;width:600px;height:30px;background: #f7f7f7;}
.tag li{float:left;width:118px;padding:0 1px;height:29px;line-height: 29px;text-align: center;color:#666;border-bottom:1px #e8e8e8 solid;cursor: pointer;}
.tag li.on{padding:0;background: #fff;font-weight: bold;border-left:1px #e8e8e8 solid;border-right:1px #e8e8e8 solid;border-bottom:1px #fff solid;}
.cons li{float:left;width:250px;line-height: 15px;margin:20px 0 0 45px;}
.cons li a{color:#666;}
</style>
<script>
function tab(){
var tag = document.getElementById('tagBox').getElementsByTagName('li'),
con = document.getElementById('conBox').children,
length = tag.length,
i = 0,
timer = null;
for(; i<length; i++){
tag[i].onmouseover = (function(i){
return function(){
timer = setTimeout(function(){
for(var j=0; j<length; j++){
tag[j].className = '';
con[j].style.display = 'none';
//i === j ? (tag[i].className = 'on',con[i].style.display = 'block') : (tag[j].className = '',con[j].style.display = 'none'); //利用三元运算符也可以
}
tag[i].className = 'on';
con[i].style.display = 'block';
},200)
}
})(i);
tag[i].onmouseout = function(){
clearTimeout(timer);
time = null;
}
}
};
window.onload = tab;
</script>
</head>
<body>
<div class="tab">
<div class="tag-box">
<ul class="tag" id="tagBox">
<li class="on">公告</li>
<li>日志</li>
<li>天气</li>
<li>游戏</li>
<li>体育</li>
</ul>
</div>
<div class="con" id="conBox">
<ul class="cons">
<li><a href="javascript:;">为什么世界那么大?</a></li>
<li><a href="javascript:;">为什么世界那么大?</a></li>
<li><a href="javascript:;">为什么世界那么大?</a></li>
<li><a href="javascript:;">为什么世界那么大?</a></li>
</ul>
<ul class="cons none">
<li><a href="javascript:;">今天没有出去玩</a></li>
<li><a href="javascript:;">今天没有出去玩</a></li>
<li><a href="javascript:;">今天没有出去玩</a></li>
<li><a href="javascript:;">今天没有出去玩</a></li>
</ul>
<ul class="cons none">
<li><a href="javascript:;">万里无云</a></li>
<li><a href="javascript:;">万里无云</a></li>
<li><a href="javascript:;">万里无云</a></li>
<li><a href="javascript:;">万里无云</a></li>
</ul>
<ul class="cons none">
<li><a href="javascript:;">地下城与勇士</a></li>
<li><a href="javascript:;">地下城与勇士</a></li>
<li><a href="javascript:;">地下城与勇士</a></li>
<li><a href="javascript:;">地下城与勇士</a></li>
</ul>
<ul class="cons none">
<li><a href="javascript:;">NBA全明星赛</a></li>
<li><a href="javascript:;">NBA全明星赛</a></li>
<li><a href="javascript:;">NBA全明星赛</a></li>
<li><a href="javascript:;">NBA全明星赛</a></li>
</ul>
</div>
</div>
</body>
</html>

js选项卡切换效果的更多相关文章

  1. 用html+css+js实现选项卡切换效果

    文章转载自:http://tongling.github.io/JSCards/ 用html+css+js实现选项卡切换效果 使用之前学过的综合知识,实现一个新闻门户网站上的常见选项卡效果: 文字素材 ...

  2. 纯js实现网页tab选项卡切换效果

    纯js实现网页tab选项卡切换效果 百度搜索     js 点击菜单项就可以切换内容的效果

  3. JS实现选项卡切换效果

    1.在网页制作过程中,我们经常会用到选项卡切换效果,它能够让我们的网页在交互和布局上都能得到提升 原理:在布局好选项卡的HTML结构后,我们可以看的出来,选项卡实际上是三个选项卡标头和三个对应的版块, ...

  4. 使用jquery实现选项卡切换效果

    几张简陋的框架效果图 页面加载时: 选项卡操作后: css样式: <style type="text/css"> *{margin:0px;padding:0px;} ...

  5. [前端] html+css+javascript 实现选项卡切换效果

    用html+css+js实现选项卡切换效果使用之前学过的综合知识,实现一个新闻门户网站上的常见选项卡效果: 文字素材:房产: 275万购昌平邻铁三居 总价20万买一居 200万内购五环三居 140万安 ...

  6. vue实现选项卡切换效果

    效果如下: 说明: 这里我使用的原理是利用vue中的v-show/显示隐藏指令,当为true的时候显示,为false的时候隐藏 1html代码: <head> <meta chars ...

  7. 使用ViewPager+Fragment实现选项卡切换效果

    实现效果 本实例主要实现用ViewPage和Fragment实现选项卡切换效果,选项卡个数为3个,点击选项卡或滑动屏幕会切换Fragment并实现选项卡下方下边框条跟随移动效果. 本程序用androi ...

  8. vue实现tab选项卡切换效果

    tab选项卡切换效果: 通过点击事件传入参数,然后通过v-show来进行切换显示 <template> <div class="box"> <div ...

  9. 二、JavaScript语言--JS基础--JavaScript进阶篇--选项卡切换效果

    利用JavaScript知识,实现选项卡切换的效果. 效果图: 文字素材: 房产: 275万购昌平邻铁三居 总价20万买一居     200万内购五环三居 140万安家东三环     北京首现零首付楼 ...

随机推荐

  1. Winform获取应用程序的当前路径的方法集合(转)

    Winform获取应用程序的当前路径的方法集合,具体如下,值得收藏 //获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Loc ...

  2. ubuntu安装体验

    本文记录一下昨晚及今天安装ubuntu系统的过程及体验 2016年6月13日09:36:11 更新 今天才有发现原来自己有个没填的坑 = = 那次安乌班图后第一感觉是很好用,新鲜了好几天,但是很快,新 ...

  3. Go语言中怎样判断数据类型_不懂的木匠_新浪博客

    要判断数据类型,可以用Go的空接口: 建一个函数t 设置参数i 的类型为空接口,空接口可以接受任何数据类型 func t(i interface{}) {  //函数t有一个参数i  switch i ...

  4. Redis 作为缓存服务器的配置

    随着redis的发展,越来越多的架构用它取代了memcached作为缓存服务器的角色,它有几个很突出的特点:1. 除了Hash,还提供了Sorted Set, List等数据结构2. 可以持久化到磁盘 ...

  5. 是一个IPV6地址

    每次在VS上调试,发现本机地址是 ::1 这种就不解.由于太忙而没关注,今天看了IPV6的文章才明白.原来这是个IPV6地址,也就是本机环回地址.以前是127.0.0.1,IPV4版本,而IPV6的就 ...

  6. shopnc 商家中心添加打印商品二维码功能

    需求中提到需要增加每一件商品可以打印,用于线下体验店实体商品的二维码标签,客人可以根据手机扫二维码功能进行购买 任务描述: 1.如附件实现”批量打印标签“和单个商品”打印“标签功能. 2.标签有两种” ...

  7. php array 排序 感悟

    array  排序总体有这几个函数sort.rsort.asort.arsort.ksort.krsort.usort.uasort.uksort. 一开始我记来记去总是有点混乱,后来认真对比后终于清 ...

  8. .NET4.0下使用Net2.0类库或程序集

    最近在项目上一直使用.net4.0 framework,使用ffmepeg下的一个dll时,提示只能在2.0下运行,解决方法如下: app.config中添加一个配置节:startup <?xm ...

  9. android的注意点

    1.使用Message.callback Message msg = Message.obtain(myThreadHandler,new Runnable() { @Override public  ...

  10. Qt-4.6动画Animation快速入门三字决

    Qt-4.6动画Animation快速入门三字决 Qt-4.6新增了Animation Framework(动画框架),让我们能够方便的写一些生动的程序.不必像以前的版本一样,所有的控件都枯燥的呆在伟 ...