【问题标题】:create a spinner for my html page [closed]为我的 html 页面创建一个微调器 [关闭]
【发布时间】:2012-07-17 08:47:43
【问题描述】:

我有一个用户需要提交到服务器的网络表单。服务器响应可能需要几秒钟。所以我想向用户展示一个微调器,这样所有其他字段都是灰色的,并且用户在网络表单中进行任何更改,并且在中心我有一个不断旋转的微调器..请帮助我我应该如何继续..

【问题讨论】:

  • 那些日子我们是不是有点太急于结束问题了?这不是一个完美的问题,OP 并不真正知道他的问题意味着什么,但我们不能将我们的帮助限制在真正需要它的人身上。

标签: javascript jquery html


【解决方案1】:

这是我的完整解决方案,使用 ajax 发送查询(如果您使用标准表单发布离开页面,则无法使用微调器):

loading = {
    count: 0
};

loading.finish = function() {
    this.count--;
    if (this.count==0) this.$div.hide();
};

// 
loading.start = function() {
    this.count++;
    if (!this.$div) {
        var html = '<div style="position: fixed;z-index:100;left:0;top:0;right:0;bottom:0;background: black;opacity: 0.6;">';
        html += '<table width=100% height=100%>';
        html += '<tr><td align=center valign=middle>';
        html += '<img src=img/loading.gif>';
        html += '</td></tr>';
        html += '</table></div>';
        this.$div=$(html);
        this.$div.prependTo('body');
    }
    setTimeout(function(){
        if (loading.count>0) loading.$div.show();
    }, 500);
};

// the function to call
askUrl = function(url, success) {
    var httpRequest = new XMLHttpRequest();
    httpRequest.onreadystatechange = function() {
        if (httpRequest.readyState === 4) {
            if (httpRequest.status === 200) {
                success(msg);
            }
            loading.finish();
        }
    };
    loading.start();
    httpRequest.open('GET', url);
    httpRequest.send();
};

如果您调用 askUrl 并且服务器在 500 毫秒内没有响应,则屏幕变灰并显示一个微调器。

我得到了我的 gif 微调器 here

【讨论】:

  • @webarto -1 不使用 jquery 吗?这对我来说是第一次。这有点奇怪,因为 我使用 jquery。
  • @PeeHaa 好的,明白了。但鉴于我按照问题的要求使用 jquery,这有点太元了......
  • @webarto 个人通知:从您的 SO 个人资料到您的职业个人资料的链接已失效。
  • @dystroy careers.stackoverflow.com/webarto 是的,谢谢。在这种情况下,我实际上 +1 是因为不使用 jQuery,也许评论是不必要的,但它指的是 PeeHaa 链接的内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-23
  • 2019-03-14
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 1970-01-01
  • 2016-06-09
相关资源
最近更新 更多