概述
Loadmask是一個jquery plugin,使用此插件可以在DOM元素加載或更改內容時為此DOM元素添加一個屏蔽層,以防止用戶互動,同時起到提醒用戶后台任務正在運行的作用。
使用此插件可以大大提高用戶體驗,此插件是一個輕量級jquery plugin,只有2kb左右,非常易於使用;
主頁:http://code.google.com/p/jquery-loadmask/
Download: http://code.google.com/p/jquery-loadmask/downloads/list
DEMO: http://jquery-loadmask.googlecode.com/svn/trunk/demo/index.html
Quick Start
下載之后的目錄結構如下圖所示:
使用此插件非常簡單,如下步驟所示:
1、 引用jquery,1.2.3以上版本
<script type="text/javascript" src="jquery-1.7.1.js"></script>
2、 引用jquery.loadmask.css、jquery.loadmask.js(或者min版jquery.loadmask.min.js)
<link href="jquery.loadmask.css" rel="stylesheet" type="text/css" /> <script type='text/javascript' src='jquery.loadmask.min.js'></script>
3、 調用mask(label,delay)方法屏蔽DOM元素。
$("#myDiv").mask(); $("#myDiv").mask(“Loading…”); $("#myDiv").mask(“Loading…”,500);
4、 調用unmask()方法解除屏蔽。
$("#myDiv").unmask();
5、 調用isMasked()方法判斷某個DOM元素是否已屏蔽。
if($("#myDiv").isMasked()){ $("#myDiv").unmask(); }
方法
mask([label] [,delay])
在選擇的DOM元素上顯示加載屏蔽層,支持一個或多個selectors。
定義
$.fn.mask = function(label, delay){ …… }
參數
label:
一個文本字符串,顯示在最外層的一個加載提示信息(在等待圖片邊上),如果此參數值為undefined,則只顯示一個不帶等待圖標和文本提示的屏蔽層;
=undefined
delay:
以毫秒為單位的延遲顯示屏蔽層的時間,如果還沒有到延遲時間又調用了unmask()方法,那么什么都不會發生,即不會再顯示屏蔽層。
案例
$("#myDiv").mask(); $("#myDiv").mask(“Loading…”); $("#myDiv").mask(“Loading…”,500);
unmask()
移除DOM元素上的屏蔽層,此方法支持一個或多個selector;
定義
$.fn.unmask = function(){ …… }
參數
無
案例
$("#myDiv").unmask();
isMasked()
檢查一個DOM元素上是否有屏蔽層,如果沒有屏蔽層或屏蔽層延遲顯示,都返回false,否則返回true;
定義
$.fn.isMasked = function(){ …… }
參數
無
案例
if($("#myDiv").isMasked()){ $("#myDiv").unmask(); }
實現分析
調用mask方法之后,會在指定的DOM元素追加一個div元素:
<div class="loadmask"></div>
可以通過更改jquery.maskload.css文件中的.loadmask class來更改此屏蔽層樣式;
如果label有值,會再追加一個DIV元素
<div class="loadmask-msg"><div>Waiting...</div></div>
可以通過更改jquery.maskload.css文件中的.loadmask-msg類來更改提示信息樣式;