Javascript JQuery.animate()不设置动画。相反,它等待持续时间并立即进行更改
这是有史以来最令人沮丧的事情。由于某种原因,它没有像预期的那样平滑地设置动画,而是等待动画的整个持续时间为1000毫秒,然后立即设置我的.nowGone div的高度。我正在使用IE 11 这是我的HTML: 以下是我的JQuery:Javascript JQuery.animate()不设置动画。相反,它等待持续时间并立即进行更改,javascript,jquery,jquery-ui,animation,jquery-animate,Javascript,Jquery,Jquery Ui,Animation,Jquery Animate,这是有史以来最令人沮丧的事情。由于某种原因,它没有像预期的那样平滑地设置动画,而是等待动画的整个持续时间为1000毫秒,然后立即设置我的.nowGone div的高度。我正在使用IE 11 这是我的HTML: 以下是我的JQuery: 创建一个测试,看看它在Chrome/Firefox/Opera中是否表现相同。我曾尝试在窗口脚本主机上编写带有超时的JScript,但它有完全相同的问题:它没有按顺序接受延迟,而是似乎将它们提升到顶部或任意点。我认为这是一个IE11问题,不是你代码中的问题。从历史
创建一个测试,看看它在Chrome/Firefox/Opera中是否表现相同。我曾尝试在窗口脚本主机上编写带有超时的JScript,但它有完全相同的问题:它没有按顺序接受延迟,而是似乎将它们提升到顶部或任意点。我认为这是一个IE11问题,不是你代码中的问题。从历史上看,IE需要将div包装在一个containment div中,并在容器上进行动画。在这里可以很好地工作
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.11.0.js"></script>
<script src="//code.jquery.com/ui/1.11.0/jquery-ui.js"></script>
</head>
<body>
<div class="nowGone">
<!-- large table with lots of rows -->
</div>
<div class="more">
<a href="javascript:;"><i class="fa fa-plus"></i> Show</a>
</div>
</body>
.more {
width: 100%;
text-align: center;
padding: 10px 0;
position: relative;
display: block;
}
.nowGone {
display: none;
overflow: hidden;
height: auto;
}
$(function () {
$(".nowGone").css('display', 'block');
var goneheight = $(".nowGone").css('height');
$(".nowGone").css('height', '0px');
$(".more").find("a").mousedown(function() {
$(".nowGone").animate({ height : goneheight }, 1000);
});
});