jQuery给我们封装了很多动画效果,最为常见的如下:
显示隐藏 | show() hide() toggle() |
滑动 | slideDown() slideUp() slideToggle() |
淡入淡出 | fadeIn() fadeOut() fadeToggle() fadeTo() |
自定义动画 | animate() |
show([speed,[easing],[fn]])
1.参数都可以省略,无动画直接显示。
2.speed :三种预定速度之一的字符串( "slow" ,"normal" , or "fast" )或表示动画时长的毫秒数值(如: 1000)。
3.easing : (Optional)用来指定切换效果,默认是"swing” ,可用参数"linear" 。
4.fn:回调函数,在动画完成时执行的函数,每个元素执行一次。
hide([speed,[easing],[fn]])
1.参数都可以省略,无动画直接显示。
2.speed :三种预定速度之一的字符串( "slow" ,"normal" , or "fast" )或表示动画时长的毫秒数值(如: 1000)。
3.easing : (Optional)用来指定切换效果,默认是"swing” ,可用参数"linear" 。
4.fn:回调函数,在动画完成时执行的函数,每个元素执行一次。
滑动效果的语法规范和参数与显示隐藏效果相同,这里我们用一个案例加以说明:
给我们之前写过的下拉菜单加上滑动效果:
// 鼠标经过 $(".nav>li").mouseover(function() { //$(this) jQuery 当前元素 this不要加引号 // show() 显示元素 hide() 隐藏元素 $(this).children("ul").slideDown(200); }); // 鼠标离开 $(".nav>li").mouseout(function() { $(this).children("ul").slideUp(200); });
但是jQuery觉得这样写太复杂了,于是有了事件切换:
// 1. 事件切换 hover 就是鼠标经过和离开的复合写法 $(".nav>li").hover(function() { $(this).children("ul").slideDown(200); }, function() { $(this).children("ul").slideUp(200); });
hover里面第一个函数是鼠标经过时触发的,第二个是鼠标离开时触发的,他和前面的代码有相同的效果,但是jQuery觉得这样还是太复杂,这下只需要一个函数就可以实现效果:
// 2. 事件切换 hover 如果只写一个函数,那么鼠标经过和鼠标离开都会触发这个函数 $(".nav>li").hover(function() { $(this).children("ul").slideToggle(); });
但是当我们鼠标快速经过离开时,每次都会触发,就造成多个动画或者效果排队执行
停止排队:
stop()
修改一下我们上例的代码:
$(".nav>li").hover(function() { $(this).children("ul").stop().slideToggle(); });
fadeIn(params,[speed],[easing],[fn]])
实现效果:
示例代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="jquery.min.js"></script> <style> div { position: absolute; width: 200px; height: 200px; background-color: pink; } </style> </head> <body> <div></div> <script> $(function() { $('div').click(function() { $(this).animate({ left:400, width:500 },500); }) }); </script> </body> </html>
到此这篇关于jQuery常见动画效果实现介绍的文章就介绍到这了,更多相关jQuery动画内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!