【问题标题】:How can I add UI spinner on Ajax call?如何在 Ajax 调用中添加 UI 微调器?
【发布时间】:2014-10-22 06:32:14
【问题描述】:

我想在 Ajax 调用中显示加载微调器。我尝试了spin.js 库,但没有成功。这是我的 JavaScript 函数,它使用 Ajax 调用。

function sendRequest() {
    $.ajax({
            url: '/spinner',
            type: 'get',
            contentType: "application/json",
            success: function (resp) {
                $('#spinner').append(resp.data);
                console.log(resp.data);
            },
            error: function (){
                console.log("Oops!");
            }
        }
    );
}

我的 HTML 代码:

<html>
<head>
    <link type="text/css" rel="stylesheet" href="../resources/css/style.css"/>
    <link rel="stylesheet" href="http://yui.yahooapis.com/pure/0.5.0/pure-min.css">
    <script type="text/javascript" charset="utf-8" src="../resources/js/jquery.js"></script>
    <script type="text/javascript" charset="utf-8" src="../resources/js/send.js"></script>
    <script type="text/javascript" charset="utf-8" src="../resources/js/jquery.spin.js"></script>
    <script type="text/javascript" charset="utf-8" src="../resources/js/spin.js"></script>
</head>
<body>
    <button id="butt" class="pure-button pure-button-primary" onclick="sendRequest()">Press me!</button>
    <div id="spinner">Greeting!</div>
</body>
</html>

-CSS-

#spinner {
    text-align: center;
    font-size: 100px;
    color: #FFFFFF;
    margin: 25px 350px 350px 350px;
    background: #ad9ea4;
    position: relative;
    padding: 50px;
}

在服务器端我有一点延迟(5 秒)。实际上我想在这 5 秒内显示微调器。如何将动画微调器添加到我的页面中?

【问题讨论】:

    标签: javascript spinner jquery-ui-spinner


    【解决方案1】:

    您不需要任何库来执行此操作。只需将图像添加到您的标记中,默认情况下将其隐藏,在您发送请求时显示它并在您的请求完成时隐藏它。

    JavaScript

     function sendRequest() {
          // show spinner
          $('#spinner').show();
          $.ajax({
              url: '/spinner',
              type: 'get',
              contentType: "application/json",
              success: function (resp) {
                  $('#spinner').append(resp.data);
                  console.log(resp.data);
              },
              error: function () {
                  console.log("Oops!");
              }
          }).done(function () {
              // hide spinner
              $('#spinner').hide();
          });
      }
    

    HTML

    <img src="path/to/img.png" id="spinner"/>
    

    CSS(您可能需要编辑)

    #spinner{
      display: none;
      position: absolute;
      left: 50%;
      top: 20%;
    }
    

    【讨论】:

    • 我应该使用 z-index 吗?
    • @barbara 是的,如果有更高的 z-index 的话
    • 在标记中添加另一个带有id="fade" 的 div,默认隐藏,将其位置设置为绝对,100% 宽度和高度,将其背景设置为黑色,将其不透明度设置为 0.5 和右侧在$('#spinner').show() 之前添加$('#fade').fadeIn() 并隐藏它$('#fade').fadeOut()
    • 现在我的&lt;div id="spinner"&gt;Greeting!&lt;/div&gt; 不想隐藏。当我淡入它时 div=spinner 不会隐藏到背景中。它仍然不是前景。
    • @barbara 在小提琴中分享你的代码,这样我就可以看到问题所在
    猜你喜欢
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2014-03-29
    相关资源
    最近更新 更多