在实际的开发过程中,我们可能会遇到这种需求,如下图

左边是三个tab栏,右边是显示内容的div,当鼠标滑到坐标的tab上时,给它一个高亮显示,让它对应的内容在右边的div中显示出来,当鼠标移出的时候把tab栏上的高亮显示去掉,右边的内容也隐藏掉,这就是普通的tab切换。现在需求是这样,当鼠标从左边的tab栏移出,而且没有移进右边的div区域,让它的效果消失,但当鼠标从左边的tab栏移出,移进了右边的div区域,保持效果,当鼠标从右边的div区域移出的时候再取消效果。

大体思路是这样的,当鼠标从左侧的tab栏移出的时候给它加一个定时器setTimeout,让这个效果过0.5秒消失,如果在这个时间内鼠标移动到了右侧的div区域,取消定时器,当鼠标从右侧的div区域离开时,再加上定时器。话不多说了,直接上代码。

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
.main {
width: 300px;
height: 800px;
float: left;
}
.main > div {
width: 300px;
height: 100px;
margin-top: 50px;
border: 1px solid red;
}
.main > div.current {
background-color: deeppink;
}
.main2 {
width: 400px;
height: 400px;
border: 1px solid #3C3C3C;
float: left;
margin-left: 100px;
margin-top: 50px;
}
.main2 > div {
width: 800px;
height: 800px;
display: none;
}
.main2 > div.active {
display: block;
}
</style>
</head>
<body>
<div class="main">
<div class="current"></div>
<div></div>
<div></div>
</div>
<div class="main2">
<div class="active">111</div>
<div>222</div>
<div>333</div>
</div>
<script src="jquery-1.11.0.min.js"></script>
<script>
$(function(){
var timer = null;
$('.main div').each(function(index){
$('.main div').eq(index).on('mouseenter',function(){
$(this).addClass("current");
$('.main2 div').eq(index).addClass("active");
})
$('.main div').eq(index).on('mouseleave',function(){
timer = setTimeout(function(){
$(".main div").eq(index).removeClass("current");
$('.main2 div').eq(index).removeClass("active");
},500);
})
$('.main2 div').eq(index).on('mouseenter',function(){
clearTimeout(timer);
})
$('.main2 div').eq(index).on('mouseleave',function(){
$(".main div").eq(index).removeClass("current");
$('.main2 div').eq(index).removeClass("active");
})
})
})
</script>
</body>
</html>

  

tab栏切换的特殊效果的更多相关文章

  1. tab栏切换的特殊效果(类似网易的登陆栏效果)

    代码显示效果如上图所示: 需求说明: 在实际需求中,会遇到这样的情况:不仅是要展示选项卡的内容,而且还有可能在选项卡中需求顾客填写相关内容,而这些内容是顾客如果想了解更深层次的,就会继续填写右边的内容 ...

  2. jQuery带有定时器的tab栏切换

    现在网上很多类似选项卡的切换,我们成为tab栏切换,比如下图: 新浪的tab栏切换 淘宝的tab栏切换 其中,新浪的tab栏鼠标放上去,可以快速的来回切换,但是如果采取ajax异步传输,不停去加载服务 ...

  3. dataTable tab栏切换时错位解决办法

    做后台管理类网站肯定要写列表,首选dataTable,功能强大 最近在做一个tab栏切换时发现了一个很诡异的事情:表头错位了! 主要时因为当table被隐藏后,table的header宽度会计算错乱, ...

  4. tab栏切换

    最简单的tab栏切换 html部分 <ul class="tab"> <li class="item">待支付(1)</li> ...

  5. tab栏切换制作

    tab栏切换制作 先上图 要求1:默认状态,第一个选项卡被选中,展示第一个选项卡的内容 策略:第一个选项卡默认有被选中的样式,第一个选项卡对应的display: block,其他的dispaly设为n ...

  6. ES6面向对象实现tab栏切换效果

    面向对象实现tab栏切换效果

  7. JS实现 Tab栏切换案例

    要求:当鼠标点击上面相应的选项卡(tab),下面页面的内容也随之而改变. 结构分析: 全部的内容都放到一个大的盒子里面,盒子里面又可以分为上面和下面两个盒子. 上面的盒子放了 5个li,装着5个小的选 ...

  8. JavaScript实现Tab栏切换

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 京东网页上,可以看到下面这种tab栏的切换: 我们把模型抽象出来,实现一 ...

  9. [javascript]switchTab:仿腾讯首页Tab栏切换js插件

    腾讯首页的每个新闻栏目都是一个tab选项卡切换,属于延迟动作的:鼠标hover上去之后200毫秒才会切换,防止了因为浏览滑动导致的页面上选项卡的频繁切换.仿照这样的效果,自己写了一个js插件,实现了低 ...

随机推荐

  1. bindActionCreators

    在 http://www.ruanyifeng.com/blog/2016/09/redux_tutorial_part_three_react-redux.html 没有介绍这个,react-red ...

  2. SRM 146 DIV1 800

    Problem Statement      The purpose of a roundabout is to control the flow of traffic at a busy inter ...

  3. 用原生js写碰撞变色效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 修改C# 新建类模板

    找到安装路径下的这个文件夹:D:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplatesCache\CSh ...

  5. 用Docker Compose启动Nginx和Web等多个镜像

    安装docker-compose 运行命令 curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker ...

  6. libcurl教程

    名称 libcurl 的编程教程 目标 本文档介绍使用libcurl编程的一般原则和一些基本方法.本文主要是介绍 c 语言的调用接口,同时也可能很好的适用于其他类 c 语言的接口. 跨平台的可移植代码 ...

  7. [原创.数据可视化系列之二]使用cesium三维地图展示美国全球军事基地分布

    基于浏览器的三维地图还算是一个比较高冷的东西,最主要的技术难点是如何在浏览器上 多快好省 的显示三维数据,很遗憾,还真的没有太好的的方案,只能说还有可行的方案. 很久之前用过skyline,使用CS居 ...

  8. 修改maven默认的JDK编译版本

    1.全局模式(settings.xml) <profiles> <profile> <id>jdk-1.8</id> <activation> ...

  9. SQLServer2008R2 error 40解决方法

    实际遇到的问题,以下为搜到的解决方案,亲测可用 转自 http://blog.csdn.net/laga516/article/details/7696577 最近一直在配置服务器, 这当中最头疼的就 ...

  10. c程序中出现segment error 和 bus error 的原因

    在c程序中,经常会遇到段错误(segment error)和总线错误(bus error),这两种问题出现的原因可能如下 段错误: 对一个NULL指针解引用. 访问程序进程以外的内存空间. 实际上,第 ...