古之立大事者,不惟有超世之才,亦必有坚忍不拔之志——苏轼

写在前面

所谓的自定义动画就是通过 jQuery 提供的方法来完成我们自己想要的动画效果

animate()方法

jQuery 提供了 animate() 方法完成自定义动画效果,该方法具有两种用法。

用法一,语法结构如下所示:

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

参数说明:

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

用法二,语法结构如下所示

animate(params,options)

参数说明:

  • params:一组包含作为动画属性和终值的样式属性和及其值的集合
  • options:动画的额外选项。如下所示
    • speed -> 设置动画的速度,
    • easing -> 规定要使用的 easing 函数
    • callback -> 规定动画完成之后要执行的函数
    • step -> 规定动画的每一步完成之后要执行的函数
    • queue -> 布尔值。指示是否在效果队列中放置动画。如果为 false,则动画将立即开始

值得注意的是这个函数的关键在于指定动画形式及结果样式属性对象。这个对象中每个属性都表示一个可以变化的样式属性。例如 heighttop 等。

所有指定的属性必须用骆驼形式,比如用 marginLeft 代替 margin-left .

示例代码如下所示

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>animate()</title><script src="./library/jQuery 1.12.4.js"></script><style>#box {width: 200px;height: 200px;background-color: lightcoral;position: relative;}</style>
</head><body><button id="btn1">移动</button><button id="btn2">变小</button><div id="box"></div><script>$('#btn1').on('click', function () {$('#box').animate({top: '100px',left: '100px'}, 1000)})$('#btn2').on('click', function () {$('#box').animate({width: '100px',height: '100px'}, 1000)})</script>
</body></html>

执行结果如下图所示:

需要注意的是 animate() 方法不支持一下 CSS 样式

  • backgroundColor
  • borderBottomColor
  • borderBottomColor
  • borderBottomColor
  • borderBottomColor
  • Color
  • outlineColor

所谓的并发执行效果就是指多个动画同时执行。而排序效果就是按住动画的先后顺序执行。

dome如下:

HTML代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>并发与排队</title><script src="./library/jQuery 1.12.4.js"></script><style>#box {width: 200px;height: 200px;background-color: lightcoral;position: relative;}</style>
</head><body><button id="btn">变换</button><div id="box"></div>
</body></html>

并发执行效果测试代码

// 并发执行
$('#btn').on('click', function () {$('#box').animate({top: '100px',left: '100px'}, 1000)
})

执行结果如下所示

排队执行效果测试代码

// 排队执行
$('#btn').on('click', function () {$('#box').animate({left: '100px'}).animate({top: '100px',})
})

执行结果如下图所示:

animate() 第二种写法的 queue 属性的作用,测试代码如下所示:

$('#btn').on('click', function () {$('#box').animate({left: '100px'}).animate({top: '100px',}, {queue: false})
})

执行结果如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-T4yEnLoT-1604591373841)(./imgs/jQuery并发执行1.gif)]

animate() 第二种写法的 queue 属性用于控制元素是并发执行还是排队执行。

停止动画效果

jQuery 提供的 stop() 方法 用于停止所有在指定元素上正在运行的动画。

语法结构如下所示:

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

参数列表:

  • queue: 用来停止动画的队列名称
  • clearQueue: 如果设置成 true,则清空队列。可以立即结束动画;为 false 时,停止当前动画,但是队列中的动画可以继续执行。
  • jumpToEnd: 如果设置成 true,则完成队列。可以立即完成动画。

测试代码如下所示:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>停止动画</title><script src="./library/jQuery 1.12.4.js"></script><style>#box {width: 200px;height: 200px;background-color: lightcoral;position: relative;}</style>
</head><body><button id="btn1">开始</button><button id="btn2">停止</button><div id="box"></div><script>$('#btn1').on('click', function () {$('#box').animate({top: '200px',left: '200px'}, 2000)}).on('click', function () {$('#box').animate({width: '10px',height: '10px'}, 1000)})// 动画停止函数// stop([clearQueue])[,jumpToEnd]// - clearQueue: 如果设置成 true,则清空队列。可以立即结束动画;为 false 时,停止当前动画,但是队列中的动画可以继续执行。// - jumpToEnd: 如果设置成 true,则完成队列。可以立即完成动画。$('#btn2').on('click', function () {$('#box').stop(false, true)})</script>
</body></html>

执行结果如下图所示

延迟执行动画

jQuery提供了 delay() 方法用于设置一个 延时来推迟执行队列中之后的项目。

语法结构如下所示

delay(duration,[queueName])

参数列表

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

示例代码如下所示

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>延迟执行</title><script src="./library/jQuery 1.12.4.js"></script><style>#box {width: 200px;height: 200px;background-color: lightcoral;position: relative;}</style>
</head><body><button id="btn1">开始</button><div id="box"></div><script>$('#btn1').on('click', function () {$('#box').animate({top: '200px',left: '200px'// 延迟1000毫秒执行}, 1000).delay(1000).animate({width: '10px',height: '10px'}, 1000)})</script>
</body></html>

执行效果如下所示

搞定动画之 JQuery 中的自定义动画相关推荐

  1. jQuery中的渐变动画效果

    jQuery中的渐变动画效果jQuery中的渐变动画效果 转载于:https://www.cnblogs.com/DreamDrive/p/5780292.html

  2. 三行CSS代码搞定镜头平移(Panning Shot)动画

    什么是镜头平移,一目了然看下图的镜头效果: 在视频场景中,经常需要实现镜头平移的效果,摄影术语上这叫做Panning Shot,动画中实现镜头平移效果的方法很多种,比如在codepen中搜了下,就找到 ...

  3. PowerPoint演示文稿中设置自定义动画

    动态的东西,总是给人活灵活现的感觉.在制作演示文稿时,除了会设置幻灯片的切换方式外,还通常会为幻灯片中的某些内容(如图片.文字等)设置动画效果,使幻灯片欣赏起来不至于太呆板. 1.制作进入动画效果 选 ...

  4. android爬楼梯动画,[转载]利用PPT的自定义动画功能制作爬楼梯的动态效果

    利用PPT的自定义动画功能制作爬楼梯的动态效果 职场中,PPT报告总是少不了的,如何能让PPT与众不同.华丽而不失分寸呢?PPT中的自定义动画是一个不错的选择.我很喜欢逛一些PPT,有时看见不错的动画 ...

  5. 搞定动画之 JQuery 中的预定义动画

    古之立大事者,不惟有超世之才,亦必有坚忍不拔之志--苏轼 写在前面 所谓的 jQuery 中的预定义动画,就是 jQuery 官方提供定义好的动画方法可以供我们直接使用的. 显示与隐藏 jQuery ...

  6. jQuery之animate自定义动画

    下面是对jQuery自定义动画的整理,希望可以帮助到有需要的小伙伴. jQuery的animate()方法可以用来自定义动画方法 语法结构如下: animate(properties,duration ...

  7. jquery中的各种动画效果

    注: 所有的动画效果都可以指定3种速度参数:"slow". "normal" ."fast"(时间长度分别为0.6秒.0.4秒和0.2秒) ...

  8. jQuery 中的简单动画

    制作动画常用方法: show("速度")   显示元素    hide("速度")   隐藏元素    toggle()       切换效果 例如下jQuer ...

  9. 如何在html5中插入动画,在PPT2013中如何插入动画?

    PPT不仅仅可以放入文字,还可以插入动画.下面是小编为大家精心整理的关于在PPT2013中如何插入动画?希望能够帮助到你们. 方法/步骤 1使用PPT2013打开PPT文件,如图: 2写好PPT的内容 ...

最新文章

  1. OBJECT subcommand [arguments [arguments ...]]
  2. Linux 中RPM包的安装
  3. Echarts4.0 使用系列——折线图,这里可能有你需要的
  4. 【GIF动画+完整可运行源代码】C++实现 归并排序——十大经典排序算法之五
  5. .NET 6新特性试用 | Controller支持IAsyncDisposable
  6. python中的zip是什么意思_Python的zip()函数是什么
  7. Linux 启动、关闭、重启网络服务的两种方式
  8. 网站二次开发如何防止别人打包源码_企业网站制作前需注意的几个事项
  9. 判断某个磁盘中是否有某个文件
  10. python爬虫怎么发布请求_http请求如何在python爬虫中实现?
  11. Matplotlib从入门到精通
  12. springboot实现热部署,修改代码不用重启服务
  13. AD09之与AD6版本使用不同对比
  14. SSH 远程管理软件 SecureCRT 下载安装教程
  15. win10安装tomcat7的安装与配置【详细教程】
  16. 微信小程序demo汇总
  17. 2018华为网络技术大赛复赛
  18. C#ADO连接修改Paradox表时“操作必须使用一个可更新的查询”错误的处理办法
  19. [国家集训队]跳跳棋
  20. python import失败_解决python有时候import不了当前的包问题

热门文章

  1. 【已解决】Mac版Office的Excel无法保存文件到本地 - 保存按钮是灰色的
  2. 二叉树利用堆栈实现遍历的非递归算法
  3. 编写手机脚本入门篇 1---adb
  4. 2018年中国大数据市场分析及预测:市场规模将超6000亿元
  5. Solidworks保存Step格式文件,选择坐标系失效解决方法
  6. sensor binning信号及信噪比
  7. java http data chunk_Http chunked协议
  8. 【Luogu-P3324 [SDOI2015] / DSY-1993】星际战争
  9. 2023中央民族大学社会学考研成功上岸经验
  10. 汽车线束整车3D模型 线束设计资料大全