js控制animation动画(如何使用JavaScript控制CSS Animations和Transitions)

2025-07-13 13:00:02 :0

js控制animation动画(如何使用JavaScript控制CSS Animations和Transitions)

大家好,js控制animation动画相信很多的网友都不是很明白,包括如何使用JavaScript控制CSS Animations和Transitions也是一样,不过没有关系,接下来就来为大家分享关于js控制animation动画和如何使用JavaScript控制CSS Animations和Transitions的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

本文目录

如何使用JavaScript控制CSS Animations和Transitions

控制CSS Animation(动画)
就像我们刚刚了解到的,我们可以看到与元素动画相关的事件:animationStart,animationIteration,animationEnd。但是如果我们想改变CSS animation(动画)执行过程中的动画,还需要一点技巧!
animation-play-state属性
当你想在动画执行过程中暂停,并且接下来让动画接着执行。这时CSS的animation-play-state属性是非常有用的。你可以可以通过JavaScript像这样更改CSS(注意你的前缀):
element.style.webkitAnimationPlayState = "paused";
element.style.webkitAnimationPlayState = "running";
然而当使用animation-play-state让CSS 动画暂停时,动画中的元素变形也会以相同的方式被阻止。你不能使这种变形暂停在某个状态,使它变形,使它恢复,更不用期望它能从新的变形状态中恢复到流畅运行。为了实现这些控制,我们需要做一些更复杂的工作。
获取当前keyvalue的百分比
不幸的是,在这个阶段没有办法获得当前CSS动画关键帧的“完成百分比”。最好的获取近似值的方法是使用setInterval 函数在动画过程中迭代100次。它的本质是:动画持续的时间(单位是毫秒)/100。例如,如果动画时长4秒,则得到的setInterval的执行时间是每40ms(4000 / 100)。
var showPercent = window.setInterval(function() {
if (currentPercent 《 100) {
currentPercent += 1;
} else {
currentPercent = 0;
}
// Updates a div that displays the current percent
result.innerHTML = currentPercent;
}, 40);
这种做法很不理想,因为函数实际运行频率要远少于每40ms。我发现将它设为39ms更准确。但这个也不是好实现,因为它依赖于浏览器,并非所有浏览器下都能得到很完美效果。
获取当前动画的CSS属性值
在理想的情况下,我们选择一个使用CSS动画的元素,删除该元素当前动画再给它添加个新的动画,让它可以从当前状态开始新的动画。但是现实情况却很复杂。
下面我们就有一个演示,用来测试获取和改变CSS动画”中间流”的技术。该动画让一个元素沿一个圆形路径移动,起始位置在圆形的顶部中心(或称为“十二点”)位置。当按钮被单击时,元素的起始位置变成元素当前移动到的位置。元素会沿着之前相同的路径继续移动,只是现在“起始”的位置变成了你按下按钮时元素移动到的位置。通过在动画的第一关键帧把元素的颜色变成红色,来表示元素动画起始点位置发生了改变。
***隐藏网址***

css3或js怎么控制动画、给圆中心定位然后动画是向外扩散

涉及到 CSS3 的动画(animation)、2D 转换(transform: scale),具体如代码所示。
view plain copy
《!DOCTYPE html》
《html》
《head》
***隐藏网址***
《title》无标题文档《/title》
《style》
@keyframes warn {
0% {
transform: scale(0);
opacity: 0.0;
}
25% {
transform: scale(0);
opacity: 0.1;
}
50% {
transform: scale(0.1);
opacity: 0.3;
}
75% {
transform: scale(0.5);
opacity: 0.5;
}
100% {
transform: scale(1);
opacity: 0.0;
}
}
@-webkit-keyframes "warn" {
0% {
-webkit-transform: scale(0);
opacity: 0.0;
}
25% {
-webkit-transform: scale(0);
opacity: 0.1;
}
50% {
-webkit-transform: scale(0.1);
opacity: 0.3;
}
75% {
-webkit-transform: scale(0.5);
opacity: 0.5;
}
100% {
-webkit-transform: scale(1);
opacity: 0.0;
}
}

.container {
position: relative;
width: 40px;
height: 40px;
border: 1px solid #000;
}
/* 保持大小不变的小圆圈 */
.dot {
position: absolute;
width: 6px;
height: 6px;
left: 15px;
top: 15px;
-webkit-border-radius: 20px;
-moz-border-radius: 20px;
border: 2px solid red;
border-radius: 20px;
z-index: 2;
}
/* 产生动画(向外扩散变大)的圆圈 */
.pulse {
position: absolute;
width: 24px;
height: 24px;
left: 2px;
top: 2px;
border: 6px solid red;
-webkit-border-radius: 30px;
-moz-border-radius: 30px;
border-radius: 30px;
z-index: 1;
opacity: 0;
-webkit-animation: warn 3s ease-out;
-moz-animation: warn 3s ease-out;
animation: warn 3s ease-out;
-webkit-animation-iteration-count: infinite;
-moz-animation-iteration-count: infinite;
animation-iteration-count: infinite;
}
《/style》

《/head》

《body》
《div class="container"》
《div class="dot"》《/div》
《div class="pulse"》《/div》
《/div》
《/body》
《/html》

小程序设置动画效果

        小程序和html页面有点不同,主要是使用js来实现动画效果,因为小程序自身有提供一种方式:wx.createAnimation(OBJECT),它创建一个动画实例 animation ,通过调用实例的方法来描述动画。最后通过动画实例的export方法导出动画数据传递给组件的animation属性,step()来停止动画,step() 表示一组动画完成。

我们主要用wx:createAnimation({})来设置一些参数,例如持续时间、延时、加载方式等,用export()来开启动画,在页面上调用animation=”{{动画名称}}”。具体步骤:

1)创建动画对象并设置有效参数==》wx:createAnimation({参数:有效值})

2)创建一组动画,调用step()来表示一组动画的完成==》动画对象.动画效果.step()

3)在data中设置一个对象vip_animal(自己随意命名),用该对象开启动画==》this.setData({vip_animal: animation.export()})

4)在页面上调用动画对象==》 animation="{{vip_animal}}"

例子:淡入淡出动画效果(当淡入动画生效后1.5s,淡出动画开始生效)

在wxml上调用animation="{{vip_animal}}"来显示

如果需要设置循环效果。我们可以设置:(setAnimation为)

另一种方式:

在wxml上调用style="{{style_img}}"来显示

jquery中的animate动态效果是如何通过Js实现的

你可以看下jquery的源代码,
animate: function( prop, speed, easing, callback ) {
var empty = jQuery.isEmptyObject( prop ),
optall = jQuery.speed( speed, easing, callback ),
doAnimation = function() {
// Operate on a copy of prop so per-property easing won’t be lost
var anim = Animation( this, jQuery.extend( {}, prop ), optall );
// Empty animations, or finishing resolves immediately
if ( empty || jQuery._data( this, "finish" ) ) {
anim.stop( true );
}
};
doAnimation.finish = doAnimation;
return empty || optall.queue === false ?
this.each( doAnimation ) :
this.queue( optall.queue, doAnimation );
}
jQuery.speed = function( speed, easing, fn ) {
var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
complete: fn || !fn && easing ||
jQuery.isFunction( speed ) && speed,
duration: speed,
easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
};
opt.duration = jQuery.fx.off ? 0 : typeof opt.duration === "number" ? opt.duration :
opt.duration in jQuery.fx.speeds ? jQuery.fx.speeds : jQuery.fx.speeds._default;
// normalize opt.queue - true/undefined/null -》 "fx"
if ( opt.queue == null || opt.queue === true ) {
opt.queue = "fx";
}
// Queueing
opt.old = opt.complete;
opt.complete = function() {
if ( jQuery.isFunction( opt.old ) ) {
opt.old.call( this );
}
if ( opt.queue ) {
jQuery.dequeue( this, opt.queue );
}
};
return opt;
}

如何使用JavaScript控制CSS Animations和Transitions的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于如何使用JavaScript控制CSS Animations和Transitions、如何使用JavaScript控制CSS Animations和Transitions的信息别忘了在本站进行查找哦。

js控制animation动画(如何使用JavaScript控制CSS Animations和Transitions)

本文编辑:admin

更多文章:


rate的用法及搭配(达成率用英语怎么说)

rate的用法及搭配(达成率用英语怎么说)

大家好,rate的用法及搭配相信很多的网友都不是很明白,包括达成率用英语怎么说也是一样,不过没有关系,接下来就来为大家分享关于rate的用法及搭配和达成率用英语怎么说的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目

2026年5月19日 10:45

c语言编程求两数之和(c语言中求两个数之和)

c语言编程求两数之和(c语言中求两个数之和)

本篇文章给大家谈谈c语言编程求两数之和,以及c语言中求两个数之和对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录c语言中求两个数之和c语言求

2025年5月26日 13:15

下载免费java(有什么无病毒、安全的网站可以免费下载java格式手机游戏,且是触屏全屏的)

下载免费java(有什么无病毒、安全的网站可以免费下载java格式手机游戏,且是触屏全屏的)

大家好,如果您还对下载免费java不太了解,没有关系,今天就由本站为大家分享下载免费java的知识,包括有什么无病毒、安全的网站可以免费下载java格式手机游戏,且是触屏全屏的的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧

2026年9月24日 18:00

php7连接mysql数据库操作(PHP7连接mysql数据库方法)

php7连接mysql数据库操作(PHP7连接mysql数据库方法)

大家好,如果您还对php7连接mysql数据库操作不太了解,没有关系,今天就由本站为大家分享php7连接mysql数据库操作的知识,包括PHP7连接mysql数据库方法的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目

2025年12月29日 00:15

c语言终止程序(C语言~~~如何使程序中途结束、跳出~~~)

c语言终止程序(C语言~~~如何使程序中途结束、跳出~~~)

今天给各位分享C语言~~~如何使程序中途结束、跳出~~~的知识,其中也会对C语言~~~如何使程序中途结束、跳出~~~进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录C语言~~~如何使程序中途结束、跳出~~~C语

2025年6月5日 07:30

swing工具包(如何向eclipse里插入Swing包)

swing工具包(如何向eclipse里插入Swing包)

各位老铁们,大家好,今天由我来为大家分享swing工具包,以及如何向eclipse里插入Swing包的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!本文目录

2025年11月5日 16:15

源码网站怎么进(网页源文件如何用网页打开)

源码网站怎么进(网页源文件如何用网页打开)

大家好,源码网站怎么进相信很多的网友都不是很明白,包括网页源文件如何用网页打开也是一样,不过没有关系,接下来就来为大家分享关于源码网站怎么进和网页源文件如何用网页打开的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!本文目

2026年9月14日 10:15

达内教育登录(达内培训四个月靠谱吗)

达内教育登录(达内培训四个月靠谱吗)

本篇文章给大家谈谈达内教育登录,以及达内培训四个月靠谱吗对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。本文目录达内培训四个月靠谱吗达内培训it靠谱么大连达内培训怎么样,就业好不好达内课程中心达内贷款培训达内培训四个月靠谱吗在达内培训

2025年11月17日 17:45

flex布局的兼容性(怎么用css使得input的输入框对齐,要写出代码,别百度其他的)

flex布局的兼容性(怎么用css使得input的输入框对齐,要写出代码,别百度其他的)

今天给各位分享怎么用css使得input的输入框对齐,要写出代码,别百度其他的的知识,其中也会对怎么用css使得input的输入框对齐,要写出代码,别百度其他的进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录怎

2026年7月27日 12:15

正则表达式支持库(怎样在aardio中使用正则表达式,用哪个函数)

正则表达式支持库(怎样在aardio中使用正则表达式,用哪个函数)

本篇文章给大家谈谈正则表达式支持库,以及怎样在aardio中使用正则表达式,用哪个函数对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。本文目录怎样在

2025年11月17日 05:30

math函数用法(如何使用python中的math)

math函数用法(如何使用python中的math)

大家好,关于math函数用法很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于如何使用python中的math的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!本文

2026年8月3日 04:45

腾讯云数据库管理工具(navicat导入mangodb几百万行传输中断)

腾讯云数据库管理工具(navicat导入mangodb几百万行传输中断)

大家好,腾讯云数据库管理工具相信很多的网友都不是很明白,包括navicat导入mangodb几百万行传输中断也是一样,不过没有关系,接下来就来为大家分享关于腾讯云数据库管理工具和navicat导入mangodb几百万行传输中断的一些知识点,

2025年12月5日 03:30

java 线程安全(java中为什么说,String是线程安全的)

java 线程安全(java中为什么说,String是线程安全的)

这篇文章给大家聊聊关于java 线程安全,以及java中为什么说,String是线程安全的对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录java中为什么说,String是线程安全的JAVA中如何保证线程安全以及主键自增有序j

2026年5月1日 04:00

下载excel教程(windows家庭中文版的怎么下载excel教程)

下载excel教程(windows家庭中文版的怎么下载excel教程)

这篇文章给大家聊聊关于下载excel教程,以及windows家庭中文版的怎么下载excel教程对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录windows家庭中文版的怎么下载excel教程如何安装excel软件的教程offi

2026年8月11日 20:15

delphi控制485(如何在delphi中使用海康威视的485口)

delphi控制485(如何在delphi中使用海康威视的485口)

今天给各位分享如何在delphi中使用海康威视的485口的知识,其中也会对如何在delphi中使用海康威视的485口进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录如何在delphi中使用海康威视的485口de

2026年9月4日 06:00

reflection固定搭配(scattered固定搭配)

reflection固定搭配(scattered固定搭配)

这篇文章给大家聊聊关于reflection固定搭配,以及scattered固定搭配对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。本文目录scattered固定搭配prefer to do和prefer doing的区别afford的

2026年3月24日 11:15

tengine windows(天龙八部报错是怎么回事啊 )

tengine windows(天龙八部报错是怎么回事啊 )

大家好,如果您还对tengine windows不太了解,没有关系,今天就由本站为大家分享tengine windows的知识,包括天龙八部报错是怎么回事啊 的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!本文目录天龙八部

2026年2月14日 17:45

ctab化学名称?predictive与predictable的区别

ctab化学名称?predictive与predictable的区别

今天给各位分享ctab化学名称的知识,其中也会对ctab化学名称进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录ctab化学名称predictive与predictable的区别ctab化学名称ctab是化学物

2026年8月14日 15:30

battery is critically low是什么意思(电脑开机出显warning!batteryiscritcallylow就停在这个位置不动是什么情)

battery is critically low是什么意思(电脑开机出显warning!batteryiscritcallylow就停在这个位置不动是什么情)

大家好,关于battery is critically low是什么意思很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于电脑开机出显warning!batteryiscritcallylow就停在这个位置不动是什么情的知识点

2025年12月14日 00:30

乘风滑块游戏(数字华容道怎么玩)

乘风滑块游戏(数字华容道怎么玩)

各位老铁们好,相信很多人对乘风滑块游戏都不是特别的了解,因此呢,今天就来为大家分享下关于乘风滑块游戏以及数字华容道怎么玩的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!本文目录数字华容道怎么玩很多长方形最后红色出关卡叫什

2025年6月26日 07:45

近期文章

本站热文

electronics软件(labcenter electronics是什么软件)
2025-05-22 23:45:02 浏览:134
博客是微博吗(博客是微博吗)
2025-05-22 22:45:01 浏览:111
diversity and distribution(悬赏英语短文)
2025-05-23 16:15:02 浏览:107
ios软件开发前景(iOS就业前景怎么样)
2025-05-22 23:00:01 浏览:102
next month(有The next month这个单词吗,和 next month有什么区别)
2025-05-23 02:30:01 浏览:102
patron(patron是什么意思)
2025-05-23 10:30:02 浏览:95
标签列表

热门搜索