javascript - AJAX 加载加载微调器

标签 javascript jquery css ajax

我想在我的网站上放置这样的东西。这是 codepen .

@-webkit-keyframes rotate-forever {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@-moz-keyframes rotate-forever {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes rotate-forever {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
.loading-spinner {
  -webkit-animation-duration: 0.75s;
  -moz-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-name: rotate-forever;
  -moz-animation-name: rotate-forever;
  animation-name: rotate-forever;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  animation-timing-function: linear;
  height: 30px;
  width: 30px;
  border: 8px solid #ffffff;
  border-right-color: transparent;
  border-radius: 50%;
  display: inline-block;
}

body {
  background: #774CFF;
}

.loading-spinner {
  position: absolute;
  top: 50%;
  right: 0;
  bottom: 0;
  left: 50%;
  margin: -15px 0 -15px;
}
<body>
  <div class="loading-spinner"></div>
</body>

但是,我希望在我所有的 ajax 加载到我的站点之前显示它,我有 5-6 个 API GET 调用,一个是通过 Rails。我该怎么做?这样它就会覆盖整个页面,直到它被加载。

最佳答案

  1. .loading-spinner 转换为掩码(参见代码),以便隐藏内容。
  2. ajax 完成时,只需 .hide() 即可。

$.ajax({
  url: 'your_ajax',
  success: function() {
    hideLoader()
  },
  error: function() {
    hideLoader()
  }
});

function hideLoader() {
  $('.loading-spinner').hide();
}
@-webkit-keyframes rotate-forever {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@-moz-keyframes rotate-forever {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}
@keyframes rotate-forever {
  0% {
    -webkit-transform: rotate(0deg);
    -moz-transform: rotate(0deg);
    -ms-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    transform: rotate(0deg);
  }
  100% {
    -webkit-transform: rotate(360deg);
    -moz-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    transform: rotate(360deg);
  }
}

.loading-spinner {
 background: #774CFF;
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
}

.loading-spinner:before {
  -webkit-animation-duration: 0.75s;
  -moz-animation-duration: 0.75s;
  animation-duration: 0.75s;
  -webkit-animation-iteration-count: infinite;
  -moz-animation-iteration-count: infinite;
  animation-iteration-count: infinite;
  -webkit-animation-name: rotate-forever;
  -moz-animation-name: rotate-forever;
  animation-name: rotate-forever;
  -webkit-animation-timing-function: linear;
  -moz-animation-timing-function: linear;
  animation-timing-function: linear;
  height: 30px;
  width: 30px;
  border: 8px solid #ffffff;
  border-right-color: transparent;
  border-radius: 50%;
  display: inline-block;
}

/*body {
  background: #774CFF;
}*/

.loading-spinner:before {
  content:"";
  position: absolute;
  top: 50%;
  right: 0;
  bottom: 0;
  left: 50%;
  margin: -15px 0 -15px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body>
  <div class="loading-spinner"></div>
  Lorem Ispum Lorem Ispum Lorem Ispum Lorem Ispum 
</body>

关于javascript - AJAX 加载加载微调器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35265881/

相关文章:

javascript - Kendo 网格插入带有自定义类的新行

c# - 如何实时渲染图像

javascript - 如何使用表格而不是使用 Protractor 的中继器获取网格上的寄存器数量?

javascript - 将视频流 JavaScript 代码传输到 React (ML5)

javascript - 为什么单击按钮时我会收到额外的响应?

javascript - 如何制作具有动态内容的可滚动 div

jquery - 如何去除网页顶部和底部的空白?

CSS 过渡应用不正确?

css - 为什么 line-height 在 span 标签中被忽略而在 div 标签中有效?

javascript - redux 形式方法 "PUT"中的 500(内部服务器错误)