jquery-导航条滑块特效(2014-11-03 )

特效演示地址:http://itxiaoming.sinaapp.com/demo03/demo.html

?

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
	<title>demo</title>
	<link rel="stylesheet" type="text/css" href="demo.css">
	<script type="text/javascript" src="jquery.js"></script>
	<script type="text/javascript" src="demo.js"></script>
</head>
<body>
	<div id="main">
		<div id="menu">
			<div id="slider"></div>
			<ul id="menu_ul">
				<li>首页</li>
				<li>新闻中心</li>
				<li>业务</li>
				<li>案例</li>
				<li>关于我们</li>
			</ul>
		</div>
	</div>
</body>
</html>

?

$(document).ready(function(){
	var width = $("#menu_ul li:first").outerWidth(true);
	$("#slider").width(width);
	$("#menu_ul li").mouseover(function(){
		var div = $("#slider");
		//获取当前栏目块的宽度
		var _width = $(this).outerWidth(true);
		//计算当前栏目块所在的位置
		var _left = 0;
		for( var i = 0 ; i < $(this).index() ; i++ ){
			_left += $("#menu_ul li:eq("+i+")").outerWidth(true);
		}
		var _divLeft = div.css("left");
		
		var n1 = 20;
		var n2 = -30;
		var n3 = 10;
		/**
		 * 如果计算出来的位置大于当前滑块的位置,则是加法,否则是减法
		 * 加法就是向右弹,减法就是向左弹
		 */
		if( parseInt(_divLeft) > parseInt(_left) ){
			n1 = parseInt(0 - n1);
			n2 = parseInt(0 - n2);
			n3 = parseInt(0 - n3);
		}
		//移动滑块到当前栏目块下并修改滑块的宽度为当前栏目块的宽度,然后开启一个反弹的动画效果
		_left += n1;
		div.stop(true,false).animate({left:_left,width:_width},500);
		_left += n2;
		div.animate({left:_left},500);
		_left += n3;
		div.animate({left:_left},500);
	});

	// $(".menu_li").mouseout(function(){
	// 	var div = $(this);
	// 	div.toggleClass(‘menu_li_b‘);
	// });
});

?

初始化的时候先初始化滑块的位置在首页上,然后给栏目块绑定鼠标放上去事件。

?

1.放上去后,计算鼠标所在块的位置

2.获取滑块的位置,然后比较判断滑块是往左还是往右滑动的

3.计算出滑块的弹性位置值,然后设置滑块弹性动画

?

/* demo01 css */
body{
	padding: 0px;
	border: 0px;
	margin: 0px;
}
#main{
	margin: auto;
	display: block;
	width: 1000px;
	height: 100%;
	text-align: center;
	position:relative;
}
#menu{
	position: relative;
	background: #333;
	height: 44px;
	width: 100%;
	margin-top: 10px;
	text-align: center;
	overflow: hidden;
}
#slider{
	background: red;
	height: 44px;
	position: absolute;
	left: 0px;
}
#menu_ul{
	position: absolute;
	padding: 0px;
	margin: 0px;
	border: 0px;
	height: 44px;
	width: 980px;
	padding-left: 0px;
}
li{
	padding: 15px 30px;
	float: left;
	color: #FFF;
	font-family: "Microsoft Yahei";
	font-weight: 600;
	font-size: 14px;
	line-height: 14px;
	cursor: pointer;
}

?

?

?

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。