使用 JQuery 在 DIV 中显示繁忙指示器

Posted

技术标签:

【中文标题】使用 JQuery 在 DIV 中显示繁忙指示器【英文标题】:Show a busy indicator in a DIV with JQuery 【发布时间】:2012-09-28 20:33:24 【问题描述】:

我有一个动画 .gif,我想将其用作忙碌指示器。加载某些内容时将使用此繁忙指示器。

加载后,内容将显示在 div 中。在加载内容时,我希望在现有内容上基本上有一个半透明层,该层还显示我的动画 .GIF。目前,我有以下内容:

<div id="main">
  <div id="contentArea">
    Loaded content will go here
  </div>
  <input type="button" value="Load Latest Content" onclick="loadContent();" />
</div>

脚本是:

<script type="text/javascript">
  function loadContent() 
    // Show busy indicator on semi-transparent layer.
    pingWebService();
    return false;
  
  function pingWebService() 
     $.ajax(...);
  
  function pingWebServiceComplete() 
    // Hide busy indicator
  
</script>

我的.ajax 电话工作正常。我只是不确定如何处理繁忙的指示器部分。

【问题讨论】:

尝试块 ui malsup.com/jquery/block 【参考方案1】:

JQuery 只需要显示/隐藏指示器图像,可以这样做:

$("#MyBusyElement").show();

$("#MyBusyElement").hide();

剩下的就是你的 html/css 布局了。您可以在 CSS 中使用透明度,但旧版浏览器无法正确支持此功能,因此要么使用具有透明背景的“忙碌”gif 来覆盖 div,要么在旧版浏览器中选择完全不透明的封面(我只想去吧。使用旧浏览器的人应该受苦!)

【讨论】:

小心。如果您隐藏动画 gif,IE8(如果 IE9 也不知道)无法在隐藏的现在可见的 div 上显示动画。图像将静止不动。 @Alfabravo:你的意思是我也要支持IE?!?! ...开个玩笑,虽然我从未见过。你能制作一个 JSFiddle(或其他来源)来说明吗? 我的 0.02:我有一个 web 应用程序,我在其中使用了“加载”动画 gif。它位于一个隐藏的 div 中,我根据需要将其隐藏起来。它运行良好,但 IE(我记不清是 7 还是 8)仍然显示 gif 并且客户抱怨,因为它似乎“站点已停止工作”。让我尝试构建一个 jsfiddle... Alfabravo,它似乎在 ie8 中对我有用 jsfiddle.net/4AQx6/2 也许你在谈论 ie7 ? 我有机会在 ie6 和 ie7 中测试它,它在 O_o 中都有效。也许你的例子是一个孤立的事件?【参考方案2】:

很简单,就像musefan说的,只是隐藏或显示包含图像的div。这是一个人为的example。

【讨论】:

以上是关于使用 JQuery 在 DIV 中显示繁忙指示器的主要内容,如果未能解决你的问题,请参考以下文章

工作灯负载指示器

可视化 jquery 基于规则的密码指示器

在 jquery mobile、phonegap/cordova 中添加一个活动指示器以显示应用程序何时忙碌

如何在 iframe 完全加载之前显示繁忙的光标?

电脑显示器屏幕出现问题怎么办?

单击另一个 div 时显示 div