首頁 >web前端 >js教程 >AJAX顯示載入中並彈出圖層遮蔽頁面的實作範例

AJAX顯示載入中並彈出圖層遮蔽頁面的實作範例

亚连
亚连原創
2018-05-23 10:30:341931瀏覽

大家都知道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"); 
  }); 
});

上面是我整理給大家的,希望今後會對大家有幫助。

相關文章:

通達OA 使用Ajax與工作流程外掛程式實作依據人力資源系統資料增加OA帳號(圖文詳解)

Ajax提交參數的值中帶有html標籤不能提交成功的解決方案

#Lavarel框架中使用ajax提交表單的方法_AJAX相關

#####

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

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