首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何重新启动/重置Jquery动画

问如何重新启动/重置Jquery动画
EN

Stack Overflow用户
提问于 2014-08-20 15:42:58
回答 4查看 21.2K关注 0票数 10

如何在jquery中重置动画?例如:

CSS

代码语言:javascript
复制
.block {
    position:absolute;
    top: 0;
    left: 0;
}

联署材料:

代码语言:javascript
复制
$('.block').animate({
    left: 50,
    top: 50
});

如果我这样做了:

代码语言:javascript
复制
$('.block').stop();

动画就会停止。但我怎样才能澄清这个位置,重新开始呢?从0,0点开始。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-08-20 16:23:43

当jQuery动画一个元素时,它会在style属性中添加与样式相关的信息。如果您需要在没有jQuery css的情况下将元素重置为它的基本样式,只需在动画末尾删除这个属性-请参阅.animate()在jQuery API上。

代码语言:javascript
复制
$('.block').animate({
    left: 50,
    top: 50
}, 'slow', function () { $(this).removeAttr('style'); });

回调函数将删除style属性,并在动画末尾重置元素。

票数 18
EN

Stack Overflow用户

发布于 2014-08-20 15:50:57

您可以像您正在做的那样使用.stop(),但是在其中添加一个参数也可以清除队列,然后使用.css()重置您的顶部和左侧位置。

代码语言:javascript
复制
$('.block').stop(true).css({top: 0, left: 0});

.finish()也属于同样的类别,但这使得所有动画都处于它们的最终状态,这不是您想要做的事情。您只想停止/清除当前动画(包括任何排队的动画),然后将CSS属性重置回您的起始状态。

票数 2
EN

Stack Overflow用户

发布于 2014-08-20 15:44:21

您正在寻找jquery .finish

http://api.jquery.com/finish/

代码语言:javascript
复制
$('.block').finish().css('top', '0').css('left', '0');
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25409023

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档