首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用大小效果后对元素进行动画恢复?

如何在使用大小效果后对元素进行动画恢复?
EN

Stack Overflow用户
提问于 2011-12-06 21:29:07
回答 2查看 355关注 0票数 0

我使用尺寸效应将我的元素的高度从100‘s降低到80’s。稍后,我想动画元素回到它的原始状态,然而,使用大小效果再次导致许多轻微的css样式(这是预期的)。

如何正确地恢复这个元素?

换句话说,如果我这样做了:

代码语言:javascript
复制
$("my_element").effect("size", { to: { height: "80px" } });

我如何将$("my_element")动画恢复到它的预调整状态?

我想出的方法是杂乱无章的,非常依赖于大小效应的内部实现。

编辑:

这样做还不够好:

代码语言:javascript
复制
$("my_element").effect("size", { to: { height: "100px" } });

因为它留下了许多其他样式附加到元素上。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-06 21:32:27

您可以存储元素的.clone()d副本,然后当触发效果的完整事件时,将DOM上的元素替换为在任何效果之前所做的复制。

票数 0
EN

Stack Overflow用户

发布于 2011-12-06 21:37:22

数据元素是你在这里的朋友。只需设置初始值如下:

代码语言:javascript
复制
$('#my_element').data('height', $('#my_element').height()).effect("size", { to: { height: "80px" } });

当你需要回去的时候:

代码语言:javascript
复制
$('#my_element').effect("size", { to: { height: $('#my_element').data('height') +"px" } });

(根据您的评论编辑)由于您正在更改许多属性,我建议您使用这个方法。我不知道这是否是最好的解决方案,但它会奏效的。

创建一个全局对象,用于存储要动画的元素的状态。

代码语言:javascript
复制
var elementState = {};

对于您要动画的每个元素,存储它的初始状态。您可以使用元素的ID创建一种关联数组(仅命名对象的属性)。

代码语言:javascript
复制
elementState['my_element'] = $('#my_element')[0].style;

这将存储对象的style属性。要在您想要返回时获取这些信息,您可以:

代码语言:javascript
复制
//put the height back to normal
$('#my_element').effect("size", { to: { height: elementState['my_element'].height + "px" } });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8407107

复制
相关文章

相似问题

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