在jquery中“忙碌等待”动画的最佳方式是“位置可配置”? (即,显示行动的位置)
我希望有一个忙碌的等待微调器,如本文所示: 如何在jQuery中显示加载微调器? – 因为它是最干净,最容易实现的:
$('#loadingDiv') .hide() // hide it initially .ajaxStart(function() { $(this).show(); }) .ajaxStop(function() { $(this).hide(); }) ;
并将其与来自http://www.ajaxload.info/的动画结合起来
我的页面中有多个“视图”,即我的页面的不同部分可以使用相应的ajax调用进行更新/修改。
我想把这个#loadingDiv
“定位”在“行动所在”的位置附近,可以这么说。 我应该怎么做呢?
想到的事情很少:
- 在整个地方都有多个div并隐藏它们并按照相应的动作显示每个元素 – 看起来很幼稚和浪费
- 有一个空的
来“保持”
#loadingDiv
– 在该范围内发生某些事情时显示它。 我不知道怎么做… - 别的什么?
基本上如何最好地接近位置忙等待/信令而不是一个全局的? 或者是单一全局选项首选,即,要有一个“固定”div,隐藏显示在每个活动的页面顶部/中心?
只是想知道你们大多数人使用过哪个选项/首选来解决这个问题,你们怎么建议我去做…
有一些事情需要考虑:
如果用户在加载请求时与页面的其他部分进行交互,是否会导致问题?
在这种情况下,使用透明覆盖的灯箱阻止整个UI。
这些行为是否微小,与应用程序的其余部分无关?
使用本地定位的微调器。 如果是按钮,请从例如更改按钮的内容。 使用微调器“保存行”到“保存…”。
如果请求很重要但您想让用户搞砸,并且GUI很复杂
您只能覆盖部分屏幕。 http://sfiddle.net/Lv9y5/39/
本地更新,非阻塞方式
使用jQuery.position从头开始创建Spinner对象。 它应该有.show(node)和.hide()方法,也许是.setMessage(txt); 传递给show方法的DOM引用是用户单击的元素。 通过引用,您可以使用jQuery .position()来确定加载div的绝对位置。 加载div应放在BODY元素之后。