使用原生js实现页面蒙灰(mask)效果示例代码

 更新时间:2014年06月20日 11:37:40   投稿:whsnow  
像js的框架Extjs的mask()和unmask()功能提供了蒙灰效果,当然jquery也提供了这种蒙灰方法,下面有个示例,大家可以参考下

对于web应用开发者,当用户进行界面浏览时如果后台程序处理程序时间较长,那么用户在网页的等待时间会较长,但是如果页面上没有一个比较友好的提示方式

(增加蒙灰效果),那么用户体验会不是特别良好,用户不知道现在是不是应该点击别的程序,用户并不知道是不是应该继续等待网页,还是可以点击别的页面。

现在就有一个比较良好的交互,就是增加蒙灰效果。像js的框架Extjs的mask()和unmask()功能提供了蒙灰效果,当然jquery也提供了这种蒙灰方法。在此作者希望自己也能够

使用原生的js实现自己的蒙灰效果。故自己做了尝试。实现了蒙灰效果。在此我只关注实现,页面美观程度我没有太多调整,所以页面不太美观。在此贴出实现代码。

在CODE上查看代码片派生到我的代码片

<!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上查看代码片派生到我的代码片

filter:alpha(opacity=50); 
opacity:0.8; 

是代表蒙灰层透明度,filter属性是为了兼容IE8浏览器

z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。

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

相关文章

  • js闭包用法实例详解

    js闭包用法实例详解

    这篇文章主要介绍了js闭包用法,结合实例形式分析了JS闭包的概念、功能及相关操作技巧,需要的朋友可以参考下
    2016-12-12
  • javaScript实现支付10秒倒计时

    javaScript实现支付10秒倒计时

    这篇文章主要为大家详细介绍了javaScript实现支付10秒倒计时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • js 实现 list转换成tree的方法示例(数组到树)

    js 实现 list转换成tree的方法示例(数组到树)

    这篇文章主要介绍了js 实现 list转换成tree的方法示例(数组到树),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • JavaScript实现二叉搜索树

    JavaScript实现二叉搜索树

    这篇文章主要为大家详细介绍了JavaScript实现二叉搜索树,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • 对layui中的onevent 和event的使用详解

    对layui中的onevent 和event的使用详解

    今天小编就为大家分享一篇对layui中的onevent 和event的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • JS实现数组深拷贝的方法分析

    JS实现数组深拷贝的方法分析

    这篇文章主要介绍了JS实现数组深拷贝的方法,结合实例形式分析了javascript数组深拷贝的相关原理、实现方法及操作注意事项,需要的朋友可以参考下
    2019-03-03
  • 关于js内存泄露的一个好例子

    关于js内存泄露的一个好例子

    这篇文章主要介绍了关于js内存泄露的一个好例子。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • 为Javascript中的String对象添加去除左右空格的方法(示例代码)

    为Javascript中的String对象添加去除左右空格的方法(示例代码)

    这篇文章主要介绍了为Javascript中的String对象添加去除左右空格的方法(示例代码)。需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • JavaScript实现信用卡校验方法

    JavaScript实现信用卡校验方法

    这篇文章主要介绍了JavaScript实现信用卡校验方法,涉及javascript使用Luhn算法进行校验的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • JS实现的简单拖拽功能示例

    JS实现的简单拖拽功能示例

    这篇文章主要介绍了JS实现的简单拖拽功能,涉及javascript鼠标事件响应及页面元素属性动态操作相关技巧,需要的朋友可以参考下
    2017-03-03

最新评论