JQuery有一個很常見的效果叫做BlockUI
就是頁面會出現一個小框框顯示讀取中
然後會有一個圈圈一直轉來轉去
看著看著是蠻好玩的
不過主要用途是阻止使用者在該期間做任何操作
其實這個用法不難
難是難在顯示的畫面要怎麼用才好看
而我css又很弱
所以動圖的部分我就偷懶使用gif來取代
這篇先專注於介紹基本操作吧
首先在Nuget下載相關套件
下載好後會多一個js出來
雖然感覺BlockUI會被歸類在JQuery-UI裡面
但其實兩者是不同的js喔
接下來上程式碼
<script src="~/Scripts/jquery-3.4.1.js"></script>
<script src="~/Scripts/jquery.blockUI.js"></script>
<button onclick="show();">點擊測試</button>
<script>
function show(){
$.blockUI({
message: '<p><img src="/Image/test.gif" /> 處理中 請稍候...</p>',
css: {
width: '250px',
height: '50px'
}
});
setTimeout(function(){
$.unblockUI();
},5000)
}
</script>
簡單建立一個按鈕啟動BlockUI
啟動的方式為$.blockUI
裡面主要有兩個參數
第一個是message
可以輸入你想要顯示的內容
而且還可以使用html標籤
所以在裡面我就插入了會轉的圈圈
另外一個是css
可以設定顯示框本身的樣式
這裡我只調整顯示框的大小
至於要結束的話只要用$.blockUI()就可以了
這裡我使用計時器並設定5秒來模擬讀取狀況
所以跑起來就會像這樣
BlockUI經常搭配Ajax來使用
在執行Ajax前就使用BlockUI
回傳結果後等執行完success之後再unBlockUI
這樣不僅畫面好看
也讓使用者比較有耐心等待
最重要的是可以阻止使用者在Ajax執行期間做任何操作
以及等回傳後的邏輯全部處理完後,再讓使用者操作