搞定动画之 JQuery 中的自定义动画

article/2025/10/8 15:19:14

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

写在前面

所谓的自定义动画就是通过 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>

执行效果如下所示


http://chatgpt.dhexx.cn/article/7QuwfPSO.shtml

相关文章

animate.css 自定义动画

在使用animate.css 的时候 动画的高度超过了预期的高度 在这种情况下肯定是过不了测试的&#xff0c;怎么办的&#xff1f; <div class"fold-div animated " :class"{slideInDown:foldDivHeightShow}" </div>上边代码可以知道 用的是 slideInDown…

JQuery中的animate自定义动画

animate()方法用于创建自定义动画。 概述 .animate( properties [, duration ] [, easing ] [, complete ] ) properties 类型: PlainObject 一个CSS属性和值的对象,动画将根据这组对象移动。 duration (默认: 400) 类型: Number or String 一个字符串或者数字决定动画将运…

jQuery自定义动画

首先创建一个新的html&#xff0c;在body下面输入源代码&#xff1b;div标签代表的是颜色的面板&#xff0c;button标签代表的是按钮当我们输入好了源代码之后呢&#xff0c;那我们的源代码部分已经完成了&#xff0c;接下来剩下的就只有css样式和jQuery函数了 接下来我们先完成…

自定义动画

自定义动画非常简单&#xff0c;只需要实现它的applyTransformation的逻辑就可以了&#xff0c;不过通常情况下&#xff0c;还需要覆盖父类的initialize方法来实现一些初始化工作。applyTransformation方法有如下两个参数。 applyTransformation(float interpolatedTime, Trans…

自定义控件三部曲之动画篇(四)——ValueAnimator基本使用

前言&#xff1a;不要让别人的无知断送了你的梦想&#xff0c;永远坚信你所坚信的。 相关文章&#xff1a; 《Android自定义控件三部曲文章索引》&#xff1a;http://blog.csdn.net/harvic880925/article/details/50995268 一、概述 long long ago&#xff0c;我写过几篇有关…

[HTML/CSS]动画效果以及自定义动画效果

一&#xff0c;实现div或者文字的当鼠标浮于其上时的动画效果&#xff1a; 1&#xff0c;transition加在div中&#xff0c;实现动画效果的过渡效果&#xff0c;transition: all 3s;其中all表示所有样式都参与过渡&#xff0c;3s表示实现效果的时间&#xff1b;linear为使动画匀…

css如何让文字强制换行

我们在编写html时&#xff0c; 有时候&#xff0c;常常需要在移动端用到一些table的属性&#xff0c;来呈现一些数据。如果说我们的数据内不含连续的数字或字母时&#xff0c;显示是不会出错的。 可是如果我们要呈现的数据为数字或长字母信息时&#xff0c;常常会出现这样的情…

CSS文本强制换行

发生背景&#xff1a; 在没有空格的&#xff08;字母、数字&#xff0c;符号&#xff09;&#xff0c;超过容器宽度时就会把容器撑大&#xff0c;不换行。所以在这里需要对其设置强制换行的样式&#xff1b; 解决方案&#xff1a; /* word-wrap: break-word; */ /…

css强制换行和禁止换行

强制换行 word-break: break-all; /* 只对英文起作用&#xff0c;以字母作为换行依据。 */ word-wrap: break-word; /* 只对英文起作用&#xff0c;以单词作为换行依据。 */ white-space: pre-wrap; /* 只对中文起作用&#xff0c;强制换行。 */ 禁止换行 white-space:…

Css 强制英文自动换行以及word-wrap、word-break、white-space、overflow的用法

关于换行的几个知识点&#xff1a; 1、Css强制英文或数字自动换行 2、让中文按关键词或标签换行 3、Css强制中文不自动换行 4、Css强制中文不自动换行并自动隐藏&#xff1b; 5、Css中英文或数字的超出部分自动省略号…&#xff1b; 6、Css中word-wrap、word-break、white-spa…

功能测试的用例测试方法

一、等价类划分法&#xff1a; 即把所有可能输入的数据划分为若干个区域&#xff0c;然后从每个区域中取少数有嗲表行的数据进行测试。 例1&#xff1a;某网页的年龄输入框要求输入20~99的整数。&#xff08;说明&#xff1a;当输入的数据复合取值范围要求时提示&#xff1a;…

计算机性能检查方法,测试电脑性能的方法步骤详解

想知道自己电脑的运行性能吗?下面就让学习啦小编教大家如何测试电脑的性能吧。 测试电脑性能的方法 1.使用系统功能进行评测电脑的运行性能 这种方法就是通过windows自带的评测功能进行测试。 打开资源管理器&#xff0c;右键点击“属性”&#xff0c;进入到相应的窗口中来! 如…

性能测试七种常用方法,以及四大应用领域

文章目录 什么是性能测试性能指标测试模型测试种要有监控有预定条件性能测试中要有场景性能测试中有分析调优性能测试结果报告 常用的七种性能测试方法后端性能测试前端性能测试代码级性能测试压力测试配置测试并发测试可靠性测试 性能测试的四大应用领域能力验证能力规划性能调…

测试方法

一、 测试方法的分类 静态测试方法动态测试方法 1. 静态测试方法 不执行程序的测试方法。主要用于测试文档和代码&#xff08;文档&#xff09;。 2. 动态测试方法 通过运行程序来发现缺陷的测试方法。 黑盒测试方法白盒测试方法灰盒测试方法&#xff08;白 黑&#xff0…

无线网卡性能怎么测试软件,无线性能测试平台和方法

无线性能测试平台和方法 无线性能测试平台和方法 JCG JYR-N495 无线路由器 测试平台&#xff1a; 客户端&#xff1a;Thinkpad X200笔记本 450M外置无线网卡 服务器端&#xff1a;Thinkpad T400笔记本 测试软件&#xff1a;NetIQ Chariot v5.4&#xff1b;Endpoint6.0。 测试方…

银行核心业务系统性能测试方法

目录 前言 1、测试内容 2、测试方法 3、注意事项 前言 本文讨论的是基于字符终端型的银行核心业务系统。银行核心业务系统由于其复杂的业务流程&#xff0c;以及特殊的终端字符形式&#xff0c;与一般的B/S结构、C/S结构系统有较大的差异&#xff0c;其性能测试方法也存在很…

Web前端性能测试方法

今天介绍个前端性能测试的基本套路。 Web前端性能测试可以从以下几个方面入手&#xff1a; 1.页面加载性能测试&#xff1a;测试网页的加载时间&#xff0c;包括页面的首次加载、资源&#xff08;如图片、脚本、样式表等&#xff09;的加载、页面响应时间等。 2.页面渲染性能…

交换机软件测试,交换机性能测试方法

首先是看到gogogo10 在论坛回贴所提到的方法&#xff0c;才总结写出来&#xff0c;感谢gogogo10的帮助。 分为二层三层交换机的测试 测试都会用到测试仪&#xff0c;或称发包机&#xff0c;测试机&#xff0c;这个我也不太了解&#xff0c;所以这里就不提&#xff0c;只说说测试…

性能测试方法

备注&#xff1a;以下是常用的测试方法&#xff0c;当然我们还是要根据项目的需要而定&#xff0c;不同项目&#xff0c;不同业务&#xff0c;压测方法不同。比如长连接和短链接不同&#xff0c;协议不同&#xff0c;测试方法不同&#xff0c;大家要根据情况而定。 负载测试&a…

服务器性能测试方法,服务器性能测试方法

服务器性能测试方法 内容精选 换一换 登录Windows云服务器时,系统报错,错误代码为“0x112f”,如图1所示。云服务器内存不足。方法一(推荐):变更规格,升级云服务器的CPU、内存大小。变更规格的方法,请参见变更规格(CPU和内存)。变更规格,升级云服务器的CPU、内存大小。变…