一、基础动画

方法名

说明

show([speed,[easing],[fn]])
hide([speed,[easing],[fn]])
  • speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(分别对应600 毫秒、400 毫秒和200 毫秒)
  • easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"
  • fn:在动画完成时执行的函数,每个元素执行一次
toggle([speed],[easing],[fn])

用来替代hide()方法和show()方法,响应被选元素的轮流的 click 事件。如果元素是可见的,切换为隐藏的;如果元素是隐藏的,切换为可见的。

slideUp([speed],[easing],[fn])

slideDown([speed],[easing],[fn])

这个动画效果只调整元素的高度,其他参数同show

slideToggle()

用来代替slideUp()和slideDown()方法,所以只能改变高度

fadeIn([speed],[easing],[fn])

fadeOut([speed],[easing],[fn])

fadeToggle([speed,[easing],[fn]])

  • 这个动画只调整元素的不透明度,其他参数同show
  • 三个透明度方法只能是从0 到100,或者从100 到0

fadeTo([[speed],opacity,[easing],[fn]])

  • 只改变不透明度
  • opacity:一个0至1之间表示透明度的数字。

1、显示、隐藏

.hide()方法其实就是在行内设置CSS 代码:display:none; 而.show()方法要根据原来元素是区块还是内联来决定,如果是区块,则设置CSS 代码:display:block; 如果是内联,则设置CSS 代码:display:inline;

  1. $('.show').click(function () {
  2. $('#box').show('slow', function () {
  3. alert('动画持续完毕后,执行我!');
  4. });
  5. });
  6. //列队动画,使用函数名调用自身
  7. $('.show').click(function () {
  8. $('div').first().show('fast', function showSpan() {
  9. $(this).next().show('fast', showSpan);
  10. });
  11. });
  12. //列队动画,使用arguments.callee 匿名函数自调用
  13. $('.hide').click(function () {
  14. $('div').last().hide('fast', function() {
  15. $(this).prev().hide('fast', arguments.callee);
  16. });
  17. });

1.2 滑动、卷动

滑动、卷动效果和显示、隐藏效果一样,具有相同的参数。

1.3 淡入、淡出

  • 淡入、淡出效果和显示、隐藏效果一样,具有相同的参数
  • 对于.fadeTo()方法,如果本身透明度大于指定值,会淡出,否则相反
  1. $('.toggle').click(function () {
  2. $('#box').fadeTo('slow', 0.33); //0.33 表示值为33
  3. });

 二、自定义动画

  animate(params,[speed],[easing],[fn])

  • params:一组包含作为动画属性和终值的样式属性和及其值的集合
  • speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
  • easing:要使用的擦除效果的名称(需要插件支持).默认jQuery提供"linear" 和 "swing".
  • fn:在动画完成时执行的函数,每个元素执行一次。

 2.1 操作多个属性——params

  1. $("button").click(function(){
  2. $("div").animate({
  3. left:'250px',
  4. opacity:'0.5',
  5. height:'150px',
  6. width:'150px'
  7. });
  8. });
  • 默认情况下,所有 HTML 元素的位置都是静态的,并且无法移动。如需对位置进行操作,记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute
  • 色彩动画并不包含在核心 jQuery 库中。如果需要生成颜色动画,需要从 jQuery.com 下载 Color Animations 插件

2.2 使用相对值——在值的前面加上 += 或 -=

  1. $("button").click(function(){
  2. $("div").animate({
  3. left:'250px',
  4. height:'+=150px',
  5. width:'+=150px'
  6. });
  7. });

自定义动画中,每次开始运动都必须是初始位置或初始状态,而有时我们想通过当前位置或状态下再进行动画,这个时候就可以使用相对值

2.3 使用预定义的值——"show"、"hide" 或 "toggle"

  1. $("button").click(function(){
  2. $("div").animate({
  3. height:'toggle'
  4. });
  5. });

2.4 使用队列功能

自定义实现列队动画的方式,有两种:

  • 在回调函数中再执行一个动画——同一个元素,或不同元素
  • 通过连缀或顺序来实现列队动画——同一个元素
  1. //1. 通过依次顺序实现列队动画 —— 注意:如果不是同一个元素,就会实现同步动画
  2. $('.animate').click(function () {
  3.   $('#box').animate({'left' : '100px'});
  4.   $('#box').animate({'top' : '100px'});
  5.   $('#box').animate({'width' : '300px'});
  6. });
  7. //2. 通过连缀实现列队动画
  8. $('.animate').click(function () {
  9.   $('#box').animate({
  10.     'left' : '100px'
  11.   }).animate({
  12.     'top' : '100px'
  13.   }).animate({
  14.     'width' : '300px'
  15.   });
  16. });
  17. //3. 通过回调函数实现列队动画
  18. $('.animate').click(function () {
  19.   $('#box').animate({
  20.     'left' : '100px'
  21.   }, function () {
  22.     $('#box').animate({
  23.       'top' : '100px'
  24.     }, function () {
  25.         $('#box').animate({
  26.           'width' : '300px'
  27.         });
  28.     });
  29.   });
  30. });

2.4 其他函数

① stop([queue],[clearQueue],[jumpToEnd])

  • queue:用来停止动画的队列名称
  • clearQueue:如果设置成true,则清空队列。可以立即结束动画
  • jumpToEnd:如果设置成true,则完成队列。可以立即完成动画
  1. $(document).ready(function(){
  2. $("#start").click(function(){
  3. $("div").animate({left:'100px'},5000);
  4. $("div").animate({fontSize:'3em'},5000);
  5. });
  6. $("#stop").click(function(){
  7. $("div").stop(); //按钮会停止当前活动的动画,但允许已排队的动画向前执行
  8. });
  9. $("#stop2").click(function(){
  10. $("div").stop(true); //按钮停止当前活动的动画,并清空动画队列;因此元素上的所有动画都会停止
  11. });
  12. $("#stop3").click(function(){
  13. $("div").stop(true,true); //会立即完成当前活动的动画,然后停下来
  14. });
  15. });
  16.  
  17. <div style="background:#98bf21;height:100px;width:200px;position:absolute;">HELLO</div>

② delay(duration,[queueName])

  1. $('#foo').slideUp(300).delay(800).fadeIn(400);

③ queue(element,[queueName],callback())  —— 显示或操作在匹配元素上执行的函数队列

  • element:检查附加列队的DOM元素
  • queueName:字符串值,包含序列的名称。默认是 fx, 标准的效果序列。
  • callback():要添加进队列的函数

④ dequeue([queueName])——从队列最前端移除一个队列函数,并执行他,队列名,默认为fx

⑤ clearQueue([queueName])——清空对象上尚未执行的所有队列,队列名,默认为fx

如果不带参数,则默认清空的是动画队列。这跟stop(true)类似,但stop()只能清空动画队列,而这个可以清空所有通过 .queue() 创建的队列

  1. //使用.queue()方法模拟动画方法跟随动画方法之后
  2. $('#box').slideUp('slow').slideDown('slow').queue(function () {
  3. $(this).css('background', 'orange');
  4. });
  5. //如果函数执行后要继续队列,则执行next()或jQuery(this).dequeue();
  6. $('#box').slideUp('slow').slideDown('slow').queue(function (next) {
  7. $(this).css('background', 'orange');
  8. next();
  9. }).hide('slow');
  10. $('#box').slideUp('slow').slideDown('slow').queue(function () {
  11. $(this).css('background', 'orange');
  12. $(this).dequeue(); //next 函数是jQuery1.4 版本以后才出现的,而之前我们普遍使用的是.dequeue()方法
  13. }).hide('slow');
  14. //使用顺序调用的列队,逐个执行,非常清晰
  15. $('#box').slideUp('slow');
  16. $('#box').slideDown('slow');
  17. $('#box').queue(function () {
  18. $(this).css('background', 'orange');
  19. $(this).dequeue();
  20. })
  21. $('#box').hide('slow');

三、和动画相关的过滤器和方法

3.1 :animated

这个过滤器可以判断出当前运动的动画是哪个元素。通过这个特点,我们可以避免由于用户快速在某个元素执行动画时,由于动画积累而导致的动画和用户的行为不一致。

  1. //递归执行自我,无线循环播放
  2. $('#box').slideToggle('slow', function () {
  3. $(this).slideToggle('slow', arguments.callee);
  4. });
  5. //停止正在运动的动画,并且设置红色背景
  6. $('.button').click(function(){
  7. $('div:animated').stop().css('background', 'red');
  8. });

3.2 判断元素是否在动画状态的方法

$(element).is(“:animated”);

四、动画全局属性

  • $.fx.interval,设置每秒运行的帧数,默认为13 毫秒。数字越小越流畅,但可能影响浏览器性能
  • $.fx.off,关闭页面上所有的动画

jQuery学习小结2——动画的更多相关文章

  1. jQuery学习小结

    1.jQuery hide() 和 show() 通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: $("#hide").clic ...

  2. JavaScript及jQuery学习小结

    最近几天学习了很多关于JavaScript和jQuery的文章,稍作梳理后,总结如下. 1.jQuery入门系列 环境搭建 只需引用一个jQuery库文件,即可完成jQuery的环境搭建. 选择器 j ...

  3. jQuery学习小结1-CSS操作+事件

    一.DOM对象和jQuery 对象互换 1.jQuery对象 就是通过jQuery包装DOM对象后产生的对象.jQuery对象是jQuery独有的,其可以使用jQuery里的方法.比如: $(&quo ...

  4. jQuery学习小结3——AJAX

    一.jQuery的Ajax方法 jQuery对Ajax 做了大量的封装,使用起来也较为方便,不需要去考虑浏览器兼容性.对于封装的方式,jQuery 采用了三层封装: 最底层的封装方法为——$.ajax ...

  5. jQuery 学习小结

    1,jQuery是一个简单的JavaScript库,提供了一系列辅助函数:以下简称jq; 使用jq时,通常将jq代码放到head部分的事件处理方法中,也可以将其单独写出 .js 文件,引入:但无论哪种 ...

  6. 大量Javascript/JQuery学习教程电子书合集

    [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人   不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pd ...

  7. [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人

    不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pdf 274.79 KB   21天学通JavaScript(第2版)-顾宁燕扫描版.pdf ...

  8. jquery学习笔记(四):动画

    内容来自[汇智网]jquery学习课程 4.1 显示和隐藏 在jQuery中使用 hide() 和 show() 方法来隐藏和显示 HTML 元素: hide()的语法形式:$(selector).h ...

  9. jQuery学习之路(4)- 动画

    ▓▓▓▓▓▓ 大致介绍 通过jQuery中基本的动画方法,能够轻松地为网页添加非常精彩的视觉效果,给用户一种全新的体验 ▓▓▓▓▓▓ jQuery中的动画 ▓▓▓▓▓▓ show()和hide()方法 ...

随机推荐

  1. C# int.Parse()与int.TryParse()

    int i = -1;bool b = int.TryParse(null, out i);执行完毕后,b等于false,i等于0,而不是等于-1,切记. int i = -1;bool b = in ...

  2. [转] Android获取Manifest中<meta-data>元素的值

    转自: http://www.2cto.com/kf/201303/194824.html android 开发中:   在AndroidManifest.xml中,<meta-data> ...

  3. iOS - Swift Dictionary 字典

    前言 public struct Dictionary<Key : Hashable, Value> : CollectionType, DictionaryLiteralConverti ...

  4. 纯css3样式属性制作各种图形图标

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. 对List里的对象元素进行排序

    public class Student { private int studentId; private String studentName; private int age; public St ...

  6. 使用DBMS_STATS来收集统计信息【转】

    overview Oracle's cost-based optimizer (COB) uses statistics to calculate the selectivity (the fract ...

  7. C++ Primer 第三章 标准库类型vector+迭代器iterator 运算

    1.vector: 标准库类型vector表示对象的集合,其中所有对象的类型都相同,集合中的每个对象都有一个与之对应的索引,索引用于访问对象.因为vector“容纳着”其他对象,所以它也常被称作容器( ...

  8. js里面获取三位不重复值

    <html><body> <script type="text/javascript"> var d = new Date();var sz = ...

  9. java集合框架之java HashMap代码解析

     java集合框架之java HashMap代码解析 文章Java集合框架综述后,具体集合类的代码,首先以既熟悉又陌生的HashMap开始. 源自http://www.codeceo.com/arti ...

  10. 5.3.2 Eclipse集成开发环境的使用技巧

    Eclipse具有强大的编辑.调试.编译和打包功能,本节仅讲解Eclipse中最常用的功能. 1.将程序代码和注释字体变大 (1)启动Eclipse,选择“Windows”->“Preferen ...