首頁  >  文章  >  後端開發  >  AJAX顯示載入中並彈出圖層遮擋頁面

AJAX顯示載入中並彈出圖層遮擋頁面

小云云
小云云原創
2018-01-08 16:19:302032瀏覽

本文主要和大家分享AJAX顯示載入中並彈出圖層遮擋頁面,大家都知道AJAX的請求是異步的,這種異步的機制給我們帶來了體驗上的優化,但是同時我要求我們有更完善的思維去處理一個業務。當用戶請求後長時間沒有回應是一種非常不好的用戶體驗,所以我們可以在請求後利用AJAX顯示加載中並彈出圖層遮擋頁面,下面來看看實現方法。

前言

相信每位開發者都應該有所了解,當使用者發出AJAX請求時,如果長時間處於請求階段,而沒有給予使用者回應,會給使用者造成錯覺,導致用戶以為我們的系統「沒反應」了。這從某方面來講是一種不友善。

甚至有的時候,使用者看不到想要的結果,就會不停的請求,這樣會發生意想不到的後果。

所以,當發出AJAX請求時,我們給予一定的措施,保證系統的正確運作和良好的使用者體驗。

在這裡,我使用的是:顯示載入中圖片,並彈出一個圖層,使用戶不能再次發出請求。

實作方法

HTML部分:

<p id="loading" class="loadingp"> 
    <img src="images/data-loading.gif" alt="图片加载中···" /> 
</p>

HTML部分只需要放置一個p,裡麵包含一個img。

CSS樣式:

/*图片加载中p图层,用于遮挡页面*/ 
.loadingp 
{ 
  position:absolute; 
  text-align:center; 
  left:0px; 
  top:0px; 
  z-index:70; 
  background-color:#000000; 
  opacity: 0.7;/*透明#CCCCCC*/ 
  display:none; 
  }   
/*加载中图片*/ 
.loadingp img 
{ 
  position:absolute; 
  left:0px; 
  top:0px; 
  z-index:80; 
  }

對p和img進行樣式設定。

JS程式碼

//ajax请求过程中,显示加载中图片并显示图层,请求完成隐藏图片 
$(function () { 
  //注册ajax加载事件 
  $("#loading").ajaxStart(function () { 
    //一个p,用来遮挡页面,请求过程中,不可操作页面 
    var lockwin = $(this); 
    //p占满整个页面 
    lockwin.css("width", "100%"); 
    lockwin.css("display", "block"); 
    lockwin.css("height", $(window).height() + $(window).scrollTop()); 
    //设置图片居中 
    $("#loading img").css("display", "block"); 
    $("#loading img").css("left", ($(window).width() - 88) / 2); 
    $("#loading img").css("top", ($(window).height() + $(window).scrollTop()) / 2); 
  }); 
 
  $("#loading").ajaxStop(function () { 
    //隐藏p 
    var lockwin = $(this); 
    lockwin.css("width", "0"); 
    lockwin.css("display", "none"); 
    lockwin.css("height", "0"); 
    //设置图片隐藏 
    $("#loading img").css("display", "none"); 
  }); 
});

相關推薦:

#jQuery Ajax顯示對號和錯號用於驗證輸入驗證碼是否正確

#jquery+php+ajax顯示上傳進度的多圖片上傳並產生縮圖程式碼

JS和CSS實作網頁載入中的動畫效果分享

以上是AJAX顯示載入中並彈出圖層遮擋頁面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn