首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开另一个选项卡时JQuery进度条停止动画

打开另一个选项卡时JQuery进度条停止动画
EN

Stack Overflow用户
提问于 2013-10-22 03:58:46
回答 1查看 1.5K关注 0票数 0

在div内部的数据处理过程中,我有一个动画进度条的功能。进度条div位于dataprocess.php(父页面)中,进程在调用页面generate.php的iframe中完成。我在dataprocess.php中的进度条函数如下所示:

代码语言:javascript
复制
function progressBar(percent, element)
{
    var progressBarWidth = percent * ($(element).width()) / 100;
    progressBarWidth = progressBarWidth-10;
    $(element).find('div').animate({ width: progressBarWidth }, 5).html(percent + "% ");
}

dataprocess.php页面中的div:-

代码语言:javascript
复制
 <div id="progressBar" class="default"><div></div></div>

在generate.php(iframe)内部的while循环中,我调用PHP函数,如下所示,以使父动画中的进度条:-

代码语言:javascript
复制
function progress($percent)
{
    echo '<script type="text/javascript">
          parent.progressBar('.$percent.', "#progressBar");
          </script>';
}

进度条工作正常,但问题是浏览器中有超过一个选项卡。现在我在表1中进行数据处理,这个过程大约需要10-15分钟.假设现在进度条比我决定去另一个选项卡的25%,这意味着标签1也许我可以说是在空闲状态。在一段时间后,我点击回到标签1。我可以看到百分比显示100%,但进度条继续动画从25%到100%。这个过程已经完成,但是如果我转到另一个选项卡,进度条就会停止动画,只有当我回到数据处理选项卡时才能恢复工作。

谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-22 08:28:10

在这种情况下,尝试使用css3转换而不是js动画。

取代:

代码语言:javascript
复制
$(element).find('div').animate({ width: progressBarWidth }, 5).html(percent + "%&nbsp;");

通过以下方式:

代码语言:javascript
复制
$(element).find('div').width(progressBarWidth).html(percent + "%&nbsp;");

并为要动画的div添加css,让我们将其称为myDiv

代码语言:javascript
复制
#myDiv{transition:width .1s ease;-moz-transition:width .1s ease;-webkit-transition:width .1s ease;-ms-transition:width .1s ease;}

希望这有帮助

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19508696

复制
相关文章

相似问题

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