不会的要多查多问,不然不会的永远不会,哪怕你离会就差了那么一点点
						
					
		
 用jQuery制作动画背景导航菜单
		
		
		[
 2013/05/18 23:32 | by 刘新修 ]
		
	
 2013/05/18 23:32 | by 刘新修 ]
		该实例利用jQuery效果animate() 方法改变CSS背景定位属性实现动画效果,CSS背景属性值是逐渐改变的,这样视觉上就达到动画效果。
在写入这样的无序列表:
XML/HTML代码
- <ul>
 - <li><a href="#">Home</a></li>
 - <li><a href="#">About</a></li>
 - <li><a href="#">Contact</a></li>
 - </ul>
 
定义下面的CSS样式:
CSS代码
- ul { list-style:none; margin:0; padding:0; }
 - li { float:left; width:100px; margin:0; padding:0; text-align:center; }
 - li a { display:block; padding:5px 10px; height:100%; color:#FFF; text-decoration:none; border-right:1px solid #FFF; }
 - li a { background:url(bg.jpg) repeat 0 0; }
 - li a:hover { background-position:50px 0; }
 
下面是实现效果的核心jQuery代码:
JavaScript代码
- $('#nav a').css({
 - backgroundPosition: "0 0"
 - }).mouseover(function () {
 - $(this).stop().animate({
 - backgroundPosition: "(0 -250px)"
 - }, {
 - duration: 500
 - })
 - }).mouseout(function () {
 - $(this).stop().animate({
 - backgroundPosition: "(0 0)"
 - }, {
 - duration: 500
 - })
 - })
 
		
 jQuery动画回调函数
		
		
		[
 2013/05/18 23:14 | by 刘新修 ]
		
	
 2013/05/18 23:14 | by 刘新修 ]
		在上一篇文章中,如果想在最后一步切换元素的CSS样式,而不是隐藏元素:
css("border","solid 5px blue");
如果知识按照常规的方式,将fadeOut(“slow”)改为css(“border”,”solid 5px blue”),并不能达到预期的效果。预期效果是在动画的最后一步改变元素的样式,而实际的效果是,刚开始执行动哈ude时候,css()方法就被执行过了。
出现这个问题的原因是css()方法并不会加入到动画队列中,而是立即执行。可以使用回调函数(callback)对非动画方法实现排队。只要把css()方法写在最后一个动画的回调函数里即可。代码如下:
JavaScript代码
- $(function () {
 - $("#panel").click(function () {
 - $(this).animate({
 - left: "400px",
 - height: "200px",
 - opacity: "1"
 - }, 3000).animate({
 - top: "200px",
 - width: "200px"
 - }, 3000, function () {
 - $(this).css("border", "5px solid blue");
 - })
 - });
 - });
 
这样以来,css()方法就加入到动画队列中了,从而满足了上文提出的需求。


  
 
 
 
 
 


