使用原生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对dom操作封装

    简单实现JS对dom操作封装

    这篇文章主要介绍了简单实现JS对dom操作封装,需要的朋友可以参考下
    2015-12-12
  • 使用有限状态机实现简版的html解析器

    使用有限状态机实现简版的html解析器

    FSM(Finite State Machines) 有限状态机,也叫有限状态自动机,是为研究有限内存的计算过程和某些语言类而抽象出的一种计算模型,本文将使用有限状态机实现一个简版的html解析器,有需要的小伙伴可以参考下
    2023-11-11
  • 原生js自定义右键菜单

    原生js自定义右键菜单

    这篇文章主要为大家详细介绍了原生js自定义右键菜单,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • JavaScript折半查找(二分查找)算法原理与实现方法示例

    JavaScript折半查找(二分查找)算法原理与实现方法示例

    这篇文章主要介绍了JavaScript折半查找(二分查找)算法原理与实现方法,结合具体问题描述了折半查找算法的原理、实现方法及相关操作注意事项,需要的朋友可以参考下
    2018-08-08
  • 一篇文中告诉你JS中的"值传递"和"引用传递"

    一篇文中告诉你JS中的"值传递"和"引用传递"

    在JavaScript中,可以通过值和引用传递,两者之间的主要区别是,按值传递发生在赋值基本类型的时候,而赋值对象时按引用传递,下面这篇文章主要给大家介绍了关于JS中"值传递"和"引用传递"的相关资料,需要的朋友可以参考下
    2022-05-05
  • js实现适配移动端的拖动效果

    js实现适配移动端的拖动效果

    这篇文章主要为大家详细介绍了js实现适配移动端的拖动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-01-01
  • 通过BootStrap-select插件 js jQuery控制select属性变化

    通过BootStrap-select插件 js jQuery控制select属性变化

    bootstrap-select我想大家都不陌生是一个前端下拉框的插件非常好用,在select的标签中设置属性可以做很多功能控制,下面通过本文给大家详细介绍下
    2017-01-01
  • 向大师们学习Javascript(视频与PPT)

    向大师们学习Javascript(视频与PPT)

    在开始之前,先与大家一起认识下这篇文章的主角,世界级的javascript大牛们:Douglas Crockford、John Resig、Peter-Paul Koch、Nicolas C. Zakas。看名字也许挺陌生,但是如果你对javascript还算熟悉,一定不会对他们的作品陌生。
    2009-12-12
  • 面试判断元素是否在可视区域中IntersectionObserver详解

    面试判断元素是否在可视区域中IntersectionObserver详解

    这篇文章主要为大家介绍了判断元素是否在可视区域中IntersectionObserver面试详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • JS模拟实现Select效果代码

    JS模拟实现Select效果代码

    这篇文章主要介绍了JS模拟实现Select效果代码,涉及JavaScript基于鼠标点击事件动态操作页面元素实现Select效果的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09

最新评论