前言

jQuery的动画系统做的非常出色,而且把最常用的显示、隐藏、淡入淡出、滑动显示和折叠凳效果都做了很好的封装。跟jQuery的选择器和事件配合起来,可以实现很多很绚的效果,而且简单易用兼容性好。

1. 显示动画

jQuery的原型上的方法 show()方法可以实现让DOM元素进行显示动画。

  • 语法: show([speed,[easing],[fn]])

  • 参数

    • speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
    • fn:在动画完成时执行的函数,每个元素执行一次。
    • easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear".可以可以进行扩展,比如参考文章:地址
  • 返回值: jQuery包装对象。

  • 示例

// 显示所有段落
// <p style="display: none">Hello</p>
$("p").show() // 用缓慢的动画将隐藏的段落显示出来,历时600毫秒。
// <p style="display: none">Hello</p>
$("p").show("slow"); // 用迅速的动画将隐藏的段落显示出来,历时200毫秒。并在之后执行反馈!
// <p style="display: none">Hello</p>
$("p").show("fast",function(){
$(this).text("Animation Done!");
}); // 将隐藏的段落用将近4秒的时间显示出来。。。并在之后执行一个反馈。。。
// <p style="display: none">Hello</p>
$("p").show(4000,function(){
$(this).text("Animation Done...");
});

2. 隐藏动画

语法: hide([speed,[easing],[fn]])

隐藏动画的参数和使用跟show表现一致。在此就不赘述。

$("p").hide()
// 用600毫秒的时间将段落缓慢的隐藏
$("p").hide("slow");
// 用200毫秒将段落迅速隐藏,之后弹出一个对话框。
$("p").hide("fast",function(){
alert("Animation Done.");
});

3. 下滑显示(slideDown)

语法:slideUp([speed,[easing],[fn]])

通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。这个动画效果只调整元素的高度,可以使匹配的元素以“滑动”的方式隐藏起来。在jQuery 1.3中,上下的padding和margin也会有动画,效果更流畅。

参数跟show保持一致,不再赘述。

// 用600毫秒缓慢的将段落滑上
$("p").slideUp("slow");
// 用200毫秒快速将段落滑上,之后弹出一个对话框
$("p").slideUp("fast",function(){
alert("Animation Done.");
});

4. 折叠隐藏效果(slideUp)

语法: slideUp([speed,[easing],[fn]])

通过高度变化(向上减小)来动态地隐藏所有匹配的元素,在隐藏完成后可选地触发一个回调函数。

跟slideDown的语法保持一致。参数等不再赘述。

$("p").slideUp("slow");
// 用200毫秒快速将段落滑上,之后弹出一个对话框
$("p").slideUp("fast",function(){
alert("Animation Done.");
});

5. 折叠和下拉效果切换方法(toggleSlide)

语法:slideToggle([speed],[easing],[fn])

用法跟slideUp和slideDown保持一致。如果元素已经滑上去了,那么执行此方法就会滑下来。

6. 淡入、淡出效果

由于淡入淡出的方法跟slide系列的方法保持一致。不赘述。

语法 功能 实例
fadeIn([speed],[easing],[fn]) 淡入效果 $("p").fadeIn("slow");
fadeOut([speed],[easing],[fn]) 淡出效果 $("p").fadeOut("fast");
fadeToggle([speed],[easing],[fn]) 切换淡入淡出 $("p").fadeToggle("slow");

7、设置元素透明度动画

  • 语法:fadeTo([[speed],opacity,[easing],[fn]])

  • 概述

把所有匹配元素的不透明度以渐进方式调整到指定的不透明度,并在动画完成后可选地触发一个回调函数。这个动画只调整元素的不透明度,也就是说所有匹配的元素的高度和宽度不会发生变化。

  • 参数

    • speed:三种预定速度之一的字符串("slow","normal", or "fast")或表示动画时长的毫秒数值(如:1000)
    • opacity:一个0至1之间表示透明度的数字。
    • easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"
    • fn:在动画完成时执行的函数,每个元素执行一次。
  • 示例

// 使用淡入效果来显示一个隐藏的 <p> 元素:
$(".btn2").click(function(){
$("p").fadeIn();
});
// 用600毫秒缓慢的将段落的透明度调整到0.66,大约2/3的可见度
$("p").fadeTo("slow", 0.66);
// 用200毫秒快速将段落的透明度调整到0.25,大约1/4的可见度,之后弹出一个对话框
$("p").fadeTo("fast", 0.25, function(){
alert("Animation Done.");
});

8. 自定义动画

jQuery封装了对css中数值属性的动画效果的封装,可以让开发人员对数值类的属性进行自定义的动画。

  • 语法 animate(params,[speed],[easing],[fn])

  • 参数

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

// 在一个动画中同时应用三种类型的效果
$("#go").click(function(){
$("#block").animate({
width: "90%",
height: "100%",
fontSize: "10em",
borderWidth: 10
}, 1000 );
}); // 让指定元素左右移动
// HTML 代码:
// <button id="left">«</button> <button id="right">»</button>
// <div class="block"></div>
// jQuery 代码:
$("#right").click(function(){
$(".block").animate({left: '+50px'}, "slow");
}); $("#left").click(function(){
$(".block").animate({left: '-50px'}, "slow");
}); // 在600毫秒内切换段落的高度和透明度
$("p").animate({
height: 'toggle', opacity: 'toggle'
}, "slow"); // 用500毫秒将段落移到left为50的地方并且完全清晰显示出来(透明度为1)
$("p").animate({
left: 50, opacity: 'show'
}, 500); // 一个使用“easein”函数提供不同动画样式的例子。只有使用了插件来提供这个“easein”函数,这个参数才起作用。
jQuery 代码:
$("p").animate({
opacity: 'show'
}, "slow", "easein");

9. 停止动画

语法:stop([queue],[clearQueue],[jumpToEnd])

停止所有在指定元素上正在运行的动画。如果队列中有等待执行的动画(并且clearQueue没有设为true),他们将被马上执行

参数:

  • clearQueue:如果设置成true,则清空队列。可以立即结束动画。

  • jumpToEnd:让当前正在执行的动画立即完成,并且重设show和hide的原始样式,调用回调函数等。

  • queue:用来停止动画的队列名称(v1.7+ 以后版本才添加)

  • 示例

// 停止当前正在运行的动画:
$("#stop").click(function(){
$("#box").stop();
// 立即结束当前动画,并清空队列。
$("#box").stop(true, true);
});
// 点击Go之后开始动画,点Stop之后会在当前位置停下来
// <button id="go">Go</button> <button id="stop">STOP!</button>
// <div class="block"></div><button id="go">Go</button> <button id="stop">STOP!</button>
// <div class="block"></div>
// 开始动画
$("#go").click(function(){
$(".block").animate({left: '+200px'}, 5000);
}); // 当点击按钮后停止动画
$("#stop").click(function(){
$(".block").stop();
});

10. 结束动画

  • 语法:finish( [queue ] )

  • 概述

停止当前正在运行的动画,删除所有排队的动画,并完成匹配元素所有的动画。当.finish()在一个元素上被调用,立即停止当前正在运行的动画和所有排队的动画(如果有的话),并且他们的CSS属性设置为它们的目标值(所有动画的目标值)。所有排队的动画将被删除。如果第一个参数提供,该字符串表示的队列中的动画将被停止。

.finish()方法和.stop(true, true)很相似,.stop(true, true)将清除队列,并且目前的动画跳转到其最终值。但是,不同的是,.finish() 会导致所有排队的动画的CSS属性跳转到他们的最终值。

  • 参数queue:String类型,停止动画队列中的名称。

  • 示例

// 停止当前正在运行的动画
$("#complete").click(function(){
$("div").finish();
});

11. 延迟执行

  • 语法:delay(duration,[queueName])

  • 概述

设置一个延时来推迟执行队列中之后的项目。用于将队列中的函数延时执行。他既可以推迟动画队列的执行,也可以用于自定义队列。

  • 参数

    • duration:延时时间,单位:毫秒
    • queueName:队列名词,默认是Fx,动画队列。
  • 示例

// 在.slideUp() 和 .fadeIn()之间延时800毫秒。
// <div id="foo /">
$('#foo').slideUp(300).delay(800).fadeIn(400);

12. jQuery动画属性设置

  • 关闭页面上所有的动画

    jQuery.fx.off 把这个属性设置为true可以立即关闭所有动画(所有效果会立即执行完毕)

  • 设置动画的显示帧速

    jQuery.fx.interval = 100;


对应视频地址:https://chuanke.baidu.com/s5508922.html
老马qq: 515154084
老马微信:请扫码

 
微信:Flydragon_malun 或者18911865673

05-老马jQuery教程-动画的更多相关文章

  1. 01-老马jQuery教程-jQuery入口函数及选择器

    前言 这套jQuery教程是老马专门为寒门子弟而录制,希望大家看到后能转发给更多的寒门子弟.视频都是免费,请参考课程地址:https://chuanke.baidu.com/s5508922.html ...

  2. 04-老马jQuery教程-DOM节点操作及位置和大小

    1. jQuery创建DOM标签 1.1 DOM动态创建标签的方法 DOM时代我们通过document的createElement方法动态创建标签.创建标签后,动态的给他添加属性.例如代码: // 动 ...

  3. 02-老马jQuery教程-jQuery事件处理

    1. 绑定简单事件 在DOM中DOM0级绑定事件的方式是直接给事件属性赋值,但是这样有个缺点就是每次指定的事件处理程序会把之前的覆盖掉. jQuery简单绑定事件的方式,可以让我绑定多个事件处理程序跟 ...

  4. 06-老马jQuery教程-jQuery高级

    1.jQuery原型对象解密 jQuery里面的大部分API都是在jQuery的原型对象上定义的.jQuery源码中对原型对象做了简写的处理.也就是说:jQuery.fn === jQuery.pro ...

  5. 03-老马jQuery教程-DOM操作

    jQuery DOM操作 在没有jQuery之前,DOM的操作相对来说有点麻烦,尤其是DOM节点的搜索.目前我们已经学习了jQuery的选择器,接下带大家一块学习jQuery的DOM操作,jQuery ...

  6. 关于IT学习的老马私人订制服务

    各位寒门学子好,老马的前端教程发布以来,受到好多同学的关注.老马辛勤付出也收货了很多好评.在这非常感谢大家. 最近一段时间来,老马已经完成了html.css.css项目.js基础.js高级.dom与特 ...

  7. Web 开发人员不能错过的 jQuery 教程和案例

    jQuery 把惊喜延续到设计领域,处处带来极大的灵活性,创造了许多体验良好的设计,而且拥有不错的性能.这里分享一组 Web 开发人员不能错过的 jQuery 教程和案例,帮助你更好的掌握 jQuer ...

  8. jQuery Easing动画效果扩展(转)

    jQuery API提供了简单的动画效果如淡入淡出以及自定义动画效果,而今天我给大家分享的是一款jQuery动画效果扩展增强插件jquery.easing.js,使用该插件可以实现直线匀速运功.变加速 ...

  9. 放弃使用jQuery实现动画

    在Web开发的圈子里,开发人员经常觉得CSS动画是一种高性能web动画技术.假设想让网页载入的更快一些,就应该用纯CSS动画.事实上这样的观点是错误的,非常多开发人员早就放弃了javascript的动 ...

随机推荐

  1. NFS客户端、服务器协商读写粒度(rsize、wsize)流程 【转】

    rsize和wsize决定了网络文件系统(NFS)一次网络交互所能够读写的数据块的大小,rsize和wsize的大小对网络文件系统(NFS)的性能有重要影响.rsize和wsize的大小是在用户配置的 ...

  2. java 实现唯一ID生成器

      2014-11-08 内容存档在evernote,笔记名"java 实现唯一ID生成器"

  3. IOC 之深入理解 Spring IoC

    在一开始学习 Spring 的时候,我们就接触 IoC 了,作为 Spring 第一个最核心的概念,我们在解读它源码之前一定需要对其有深入的认识,本篇为[死磕 Spring]系列博客的第一篇博文,主要 ...

  4. php bccomp的替换函数

    if (!function_exists('bccomp')) { /** * 支持正数和负数的比较 * ++ -- +- * @param $numOne * @param $numTwo * @p ...

  5. mysql insert if not exists防止插入重复记录的方法(转)

    MySQL 当记录不存在时插入(insert if not exists) 在 MySQL 中,插入(insert)一条记录很简单,但是一些特殊应用,在插入记录前,需要检查这条记录是否已经存在,只有当 ...

  6. 【Oracle】使用dbms_job包创建Oracle定时任务

           在Oracle的包里面,有一个名字叫做DBMS_JOB的包,它的作用是安排和管理作业队列.通过作业队列,可以让Oracle数据库定期执行特定的任务.当使用DBMS_JOB管理作业的时候, ...

  7. Maven运行Selenium报错org/w3c/dom/ElementTraversal

    项目使用maven 构建,并且使用集成测试(integration-test). 在命令行中运行mvn clean deploy tomcat:undeploy时,报错: java.lang.NoCl ...

  8. 使用SQL Server发送邮件时遇到的诡异事件

    最近公司要实现一个邮件群发的功能,因此设计时就考虑用SQL Server的邮件发送功能直接推送邮件算了. 可是在实现的过程中,邮件内容中有一个表格的内容要展现,于是就编排了一个表格来实现. 具体实现如 ...

  9. C++编程技巧降低编译时间

    1. #define的保护 全部头文件都应该使用#define 防止头文件被多重包括(multiple inclusion).命名格式 当是:<PROJECT>_<PATH>_ ...

  10. 关于switch语句中使用String类型的实现原理

    在Java 7 以后,switch语句可以用作String类型上. 从本质来讲,switch对字符串的支持,其实也是int类型值的匹配.它的实现原理如下: 通过对case后面的String对象调用ha ...