首頁 web前端 js教程 使用原生js實作頁面蒙灰(mask)效果範例程式碼_javascript技巧

使用原生js實作頁面蒙灰(mask)效果範例程式碼_javascript技巧

May 16, 2016 pm 04:43 PM
原生js

對於web應用程式開發者,當使用者進行介面瀏覽時如果後台程式處理程序時間較長,那麼使用者在網頁的等待時間會較長,但是如果頁面上沒有一個比較友善的提示方式

(增加蒙灰效果),那麼使用者體驗會不是特別良好,使用者不知道現在是否應該點擊別的程序,使用者並不知道是不是應該繼續等待網頁,還是可以點擊別的頁面。

現在就有一個比較良好的交互,就是增加蒙灰效果。像js的框架Extjs的mask()和unmask()功能提供了蒙灰效果,當然jquery也提供了這種蒙灰方法。在此作者希望自己也能夠

使用原生的js實現自己的蒙灰效果。故自己做了嘗試。實現了蒙灰效果。在此我只關注實現,頁面美觀程度我沒有太多調整,所以頁面不太美觀。在此貼出實作代碼。

在CODE上查看程式碼片衍生到我的程式碼片

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

<HEAD>

<TITLE> New Document </TITLE>

<META NAME="Generator" CONTENT="EditPlus">

<META NAME="Author" CONTENT="">

<META NAME="Keywords" CONTENT="">

<META NAME="Description" CONTENT="">

<style type="text/css">

.maskStyle {

background-color:#B8B8B8;

z-index:1;

filter:alpha(opacity=50);

opacity:0.8;

position:absolute;

text-align:center;

color:blue;

font:bold 1em "宋体",Arial,Times;

height:25px;

font-weight:bold;

overflow:hidden;

 

}

</style>

</HEAD>

<script type="text/javascript">

function creatMaskLayer(effectItem,showText) {

divItem = document.createElement("div");

divItem.className="maskStyle";

divItem.style.lineHeight=effectItem.offsetHeight+"px";

divItem.innerText=showText;

divItem.style.width=effectItem.offsetWidth;

divItem.style.height=effectItem.offsetHeight;

divItem.style.top=effectItem.offsetTop;

divItem.style.left=effectItem.offsetLeft;

return divItem;

}

function setMask() {

var effectItem = document.getElementById("test");

var existMaskItem = findMaskItem(effectItem);

if(existMaskItem) {

return;

}

var showText = "加载中...";

effectItem.appendChild(creatMaskLayer(effectItem,showText));

}

function removeMask() {

var effectItem = document.getElementById("test");

var maskItem = findMaskItem(effectItem);

if(maskItem) {

effectItem.removeChild(maskItem);

}

}

function findMaskItem(item) {

var children = item.children;

for(var i=0;i<children.length;i++) {

if("maskStyle"==(children[i].className)) {

return children[i];

}

}

}

</script>

<BODY>

<input type="button" value="蒙灰" onclick="setMask()"/>

<input type="button" value="取消蒙灰" onclick="removeMask()"/>

<br>

<div id="test" style="border:1px solid;width:300px;height:300px">

蒙灰我吧

<input type="button" value="测试是否还能点击" onclick="alert('OK!')"/>

</div>

</BODY>

</HTML>

登入後複製


解釋一下程式碼中比較重要的地方。

.maskStyle是蒙灰層的樣式

其中
在CODE上查看程式碼片衍生到我的程式碼片

1

2

filter:alpha(opacity=50);

opacity:0.8;

登入後複製

是代表蒙灰層透明度,filter屬性是為了相容於IE8瀏覽器

z-index 屬性設定元素的堆疊順序。擁有較高堆疊順序的元素總是會處於堆疊順序較低的元素的前方。

PS:蒙灰效果需要把要蒙灰到element放到div中才可以

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

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

在JavaScript中替換字符串字符 在JavaScript中替換字符串字符 Mar 11, 2025 am 12:07 AM

在JavaScript中替換字符串字符

自定義Google搜索API設置教程 自定義Google搜索API設置教程 Mar 04, 2025 am 01:06 AM

自定義Google搜索API設置教程

示例顏色json文件 示例顏色json文件 Mar 03, 2025 am 12:35 AM

示例顏色json文件

8令人驚嘆的jQuery頁面佈局插件 8令人驚嘆的jQuery頁面佈局插件 Mar 06, 2025 am 12:48 AM

8令人驚嘆的jQuery頁面佈局插件

構建您自己的Ajax Web應用程序 構建您自己的Ajax Web應用程序 Mar 09, 2025 am 12:11 AM

構建您自己的Ajax Web應用程序

什麼是這個'在JavaScript? 什麼是這個'在JavaScript? Mar 04, 2025 am 01:15 AM

什麼是這個'在JavaScript?

通過來源查看器提高您的jQuery知識 通過來源查看器提高您的jQuery知識 Mar 05, 2025 am 12:54 AM

通過來源查看器提高您的jQuery知識

10張移動秘籍用於移動開發 10張移動秘籍用於移動開發 Mar 05, 2025 am 12:43 AM

10張移動秘籍用於移動開發

See all articles