【发布时间】:2022-01-04 23:36:23
【问题描述】:
在我的 jQuery 函数中,我正在为一个 div 元素设置动画,因此它向右移动 200px,接收一个已移动的类和一些不透明度:
if (!$(".block2").hasClass("Moved2")) {
$(".block2").animate({
"left": "+220px"
}, "slow", function() {
$.ajax
({url: 'play.php',
data: {"var1": val},
type: 'get',
success: function(json) {
if(!json.error) {$(".block2").removeClass("Moved2").css({left:"0",opacity:"1"});}
}});
} ).fadeTo("slow", 0.33).addClass("Moved2");
}
这工作正常,但完成后,我希望所有属性和 css 恢复到动画之前的状态。但我不想重新加载页面。
如你所见,现在我是这样做的:
$(".block2").removeClass("Moved2").css({left:"0",opacity:"1"});
它做我想做的事,但可能有更多属性在其他函数中受到影响,我不想一个一个地更改每个元素。该 jQuery 序列所做的一切是否有一种 UNDO?
【问题讨论】:
-
你可以缓存元素的计算样式,然后有选择地应用那些你的jQuery函数最后改变的样式。
标签: javascript html jquery css