zoukankan      html  css  js  c++  java
  • tab栏切换的特殊效果

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

          左边是三个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 {
    				 300px;
    				height: 800px;
    				float: left;
    			}
    			.main > div {
    				 300px;
    				height: 100px;
    				margin-top: 50px;
    				border: 1px solid red;
    			}
    			.main > div.current {
    				background-color: deeppink;
    			}
    			.main2 {
    				 400px;
    				height: 400px;
    				border: 1px solid #3C3C3C;
    				float: left;
    				margin-left: 100px;
    				margin-top: 50px;
    			}
    			.main2 > div {
    				 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>
    

      

  • 相关阅读:
    datatime模块
    快速幂
    | 与|| ,& 与&&
    sql----order by
    pandas iterrows()
    黄包车比赛 python学习
    右键git-bash不能使用
    17flask分页
    16flask错误处理
    15跨站请求伪造
  • 原文地址:https://www.cnblogs.com/chentan/p/6112697.html
Copyright © 2011-2022 走看看