使用 jQuery 运行/暂停 CSS 动画

Posted

技术标签:

【中文标题】使用 jQuery 运行/暂停 CSS 动画【英文标题】:run/pause CSS animation with jQuery 【发布时间】:2012-05-08 19:07:50 【问题描述】:

我想从一个暂停的 CSS 动画开始,然后使用 jQuery 运行动画一秒钟,然后再次暂停。

css如下:

#animation 
  -webkit-animation: one 5s infinite;
  -webkit-animation-play-state: paused;


@-webkit-keyframes one 
  0%  .... 
  .....
  100%  .... 

它有一些复杂的关键帧,目的是它会播放 1 秒到 20% 的位置然后停止。

我尝试了下面的 jQuery,但没有成功:

 $("#click").click(function()
     $("#animation").css("-webkit-animation-play-state", "running").delay(1000).css("-webkit-animation-play-state", "paused");          
 );

(#click是我要用作动画触发器的div)

如果我删除延迟和随后的暂停,它可以正常工作,但显然会继续循环。

例如:

 $("#click").click(function()
     $("#animation").css("-webkit-animation-play-state", "running");            
 );

你有什么好的建议?

【问题讨论】:

【参考方案1】:

当您操作 css 属性时,jQuery delay() 不起作用。请改用setTimeOut()

$("#click").click(function()
     $("#animation").css("-webkit-animation-play-state", "running");
     setTimeout(function()  
       $("#animation").css("-webkit-animation-play-state", "paused");
     , 1000);
);

【讨论】:

啊哈!感谢那。我试图弄清楚如何正确使用 setTimeout,因为当我使用它时,什么都不会发生。

以上是关于使用 jQuery 运行/暂停 CSS 动画的主要内容,如果未能解决你的问题,请参考以下文章

使用 javascript 暂停 CSS 动画并跳转到动画中的特定位置

如何在 jquery transit 中暂停和重新启动 css3 转换

如何停止CSS3的动画

js上课笔记

jQuery 简介

jQuery中停止动画stop