【发布时间】:2011-02-08 14:26:00
【问题描述】:
我正在尝试做一个简单的动画。
- 您显示 div。动画正确。
- 您隐藏了 div。正确。
- 您再次显示 div。它显示但没有动画。它停留在您第一次中断它时的值。
因此,在 [add|remove]Class 期间发生的插值 CSS 不知何故卡在那里。第二次,[add|remove]Class 实际上正在运行,但是它从类中设置的 css 被忽略了(我认为被掩盖了)。如何在不使用 .animate 和硬编码样式值的情况下解决此问题?重点是将动画结束点放在 css 类中。
谢谢!
<!doctype html>
<style type="text/css">
div {
width: 400px;
height: 200px;
}
.green {
background-color: green;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$('#show').bind({
click: function() {
showAndRun()
}
})
$('#hide').bind({
click: function() {
$('div').stop(true, false).fadeOut('slow')
}
})
function showAndRun() {
function pulse() {
$('div').removeClass('green', 2000, function() {
$(this).addClass('green', 2000, pulse)
})
}
$('div').stop(true, false).hide().addClass('green').fadeIn('slow', pulse)
}
})
</script>
<input id="show" type="button" value="show" /><input id="hide" type="button" value="hide" />
<div style="display: none;"></div>
你也可以看看它做了什么here at jsbin
【问题讨论】:
-
@Jason 我在 jsbin 添加的链接正确吗?这听起来像你描述的问题。
-
是的,这准确反映了我的问题,谢谢。