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


Posted in Javascript onJune 20, 2014

对于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中才可以

Javascript 相关文章推荐
JavaScript 核心参考教程 内置对象
Oct 13 Javascript
封装的原生javascript弹出层代码
Sep 24 Javascript
php图像生成函数之间的区别分析
Dec 06 Javascript
js模仿jquery的写法示例代码
Jun 16 Javascript
js中回调函数的学习笔记
Jul 31 Javascript
jQuery判断指定id的对象是否存在的方法
May 22 Javascript
jqPlot jQuery绘图插件的使用
Jun 18 Javascript
VUE多层路由嵌套实现代码
May 15 Javascript
Taro集成Redux快速上手的方法示例
Jun 21 Javascript
小程序从手动埋点到自动埋点的实现方法
Jan 24 Javascript
使用Karma做vue组件单元测试的实现
Jan 16 Javascript
JS轮播图的实现方法
Aug 24 Javascript
js处理php输出时间戳对不上号的解决方法
Jun 20 #Javascript
Javascript 实现复制(Copy)动作方法大全
Jun 20 #Javascript
Blocksit插件实现瀑布流数据无限( 异步)加载
Jun 20 #Javascript
教你如何自定义百度分享插件以及bshare分享插件的分享按钮
Jun 20 #Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
Jun 20 #Javascript
Node.js实现简单聊天服务器
Jun 20 #Javascript
SuperSlide2实现图片滚动特效
Jun 20 #Javascript
You might like
PHP数据缓存技术
2007/02/14 PHP
需要使用php模板的朋友必看的很多个顶级PHP模板引擎比较分析
2008/05/26 PHP
javascript,php获取函数参数对象的代码
2011/02/03 PHP
php使HTML标签自动补全闭合函数代码
2012/10/04 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
PHP钩子实现方法解析
2019/05/21 PHP
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
用jquery获取自定义的标签属性的值简单实例
2016/09/17 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
Angular.js实现注册系统的实例详解
2016/12/18 Javascript
RequireJS 依赖关系的实例(推荐)
2017/01/21 Javascript
JS实现十字坐标跟随鼠标效果
2017/12/25 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
JS实现的贪吃蛇游戏完整实例
2019/01/18 Javascript
js实现幻灯片轮播图
2020/08/14 Javascript
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
python在linux系统下获取系统内存使用情况的方法
2015/05/11 Python
python多继承(钻石继承)问题和解决方法简单示例
2019/10/21 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
HTML5 拖拽批量上传文件的示例代码
2018/03/28 HTML / CSS
数控专业个人求职信范文
2014/02/05 职场文书
运动会入场式解说词
2014/02/18 职场文书
家长会主持词
2014/03/26 职场文书
科学发展观演讲稿
2014/09/11 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
九华山导游词
2015/02/03 职场文书
2015年营销工作总结范文
2015/04/23 职场文书
长江七号观后感
2015/06/11 职场文书
教学副校长工作总结
2015/08/13 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
素质教育培训心得体会
2016/01/19 职场文书
MySQL令人大跌眼镜的隐式转换
2021/08/23 MySQL
CSS实现九宫格布局(自适应)的示例代码
2022/02/12 HTML / CSS
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS