- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在更改 div 的内容时遇到问题。我想要实现的是等待动画结束,然后更改内容以启动动画以显示新信息。这段代码有时会工作,这意味着有时它会挂起(isWorking 永远不会变成 false,因为动画卡住或动画永远没有时间从 while 内的不断循环中完成。)有没有一种方法可以等待动画结束并然后改变内容? (您在下面看到的方式允许我在动画进行时浏览新内容,这为最终用户节省了时间。)有没有办法捕捉动画结束时的情况?
function DesignResults(InnerHTML) {
while(isWorking){
}
$("#holder").html(InnerHTML);
ShowSearch(true);
}
var isWorking = false;
function ShowSearch(show) {
isWorking = true;
var outer = $("#outer");
var inner = $("#inner");
var height = 0;
if (show == true)
height = inner.outerHeight();
var loaderHeight
if (height > 0) {
loaderHeight = 0;
} else {
loaderHeight = 31;
}
outer.animate({
'height': height + "px"
}, 1600, function () {
$("#loading").animate({ 'height': loaderHeight + "px" }, 900, function () { });
isWorking = false;
});
}
我知道 $(elem).is(':animated') 会告诉我动画是否仍在进行中,但由于 while 的不断循环,这仍然会卡住所有内容。谁能指出我正确的方向?
编辑:我想我被误解了。这是我想要实现的计划:
我同意我可以按照您的建议在动画完成后执行此操作,但我已将动画的执行时间设置为几乎 1 秒,并且该时间可用于从数据库中提取数据。我正在寻找最有效的代码。
最佳答案
该函数的最后一个参数:
$("#loading").animate({ 'height': loaderHeight + "px" }, 900, function () { });
是“完整”功能。动画完成时调用此函数。
因此,您可以在该函数完成后执行一些操作,如下所示:
$("#loading").animate({ 'height': loaderHeight + "px" }, 900, function () {
alert('animations complete!');
});
----编辑----
根据您的编辑,您可能想要执行类似的操作。
有一个变量可以让您知道两者何时完成:
var signal = 0;
有一个功能可以更改您的内容:
function changeContent() {
signal++;
if (signal === 2) {
// change the content code here
signal = 0;
}
}
动画完成后,调用:
changeContent();
获取数据后,调用:
changeContent();
当任一函数第一次调用 changeContent()
时,它会将 signal
增加到 1 并退出该函数。然后在第二次时,它会将 signal
增加到 2。由于 signal === 2
,您知道动画和抓取数据都已完成,因此您可以现在更改您的内容。
使用整数来执行此操作的好处是,如果您希望在更改内容之前让 3、4、5 个以上的函数完成工作。在这种情况下,您只需通过增加 if (signal === 2)
中的数字来更改条件。
关于javascript - 等到动画结束后再替换div内的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17836577/
我有本地更改和远程更改。 有人告诉我必须先推,再 pull 。这背后有什么原因吗? 最佳答案 那个人错了:正确的模型是pull-before-you-push,而不是相反。 当您pull时,git 将
我正在使用最新版本的 Flat UI Pro 1.3.2 ( http://designmodo.com/flat/ ),jQuery 插件 flatui-radiocheck v0.1.0 和 iO
我是一名优秀的程序员,十分优秀!