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 {
				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>

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM