使用原生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 相关文章推荐
用window.location.href实现刷新另个框架页面
Mar 07 Javascript
jquery 最简单易用的表单验证插件
Feb 27 Javascript
基于jquery的可多选的下拉列表框
Jul 20 Javascript
html超链接打开窗口大小的方法
Mar 05 Javascript
javascript学习笔记(三)BOM和DOM详解
Sep 30 Javascript
jQuery中parents()和parent()的区别分析
Oct 28 Javascript
js实现获取div坐标的方法
Nov 16 Javascript
利用fecha进行JS日期处理
Nov 21 Javascript
JavaScrpt判断一个数是否是质数的实例代码
Jun 11 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
Oct 26 Javascript
vue-autoui自匹配webapi的UI控件的实现
Mar 20 Javascript
Openlayers绘制地图标注
Sep 28 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转成EXE文件
2006/10/09 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
键盘 keycode的值 javascript时触发事件时很有用的要素
2009/11/02 Javascript
JQUERY获取form表单值的代码
2010/07/17 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
鼠标经过子元素触发mouseout,mouseover事件的解决方案
2015/07/26 Javascript
javascript制作幻灯片(360度全景图片)
2015/07/28 Javascript
BootStrap创建响应式导航条实例代码
2016/05/31 Javascript
jQuery.parseHTML() 函数详解
2017/01/09 Javascript
非常实用的vue导航钩子
2017/03/20 Javascript
Angular CLI 安装和使用教程
2017/09/13 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
[01:03:18]DOTA2-DPC中国联赛 正赛 RNG vs Dynasty BO3 第一场 1月29日
2021/03/11 DOTA
详解Python3中的Sequence type的使用
2015/08/01 Python
python利用微信公众号实现报警功能
2018/06/10 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
Python 处理图片像素点的实例
2019/01/08 Python
python可视化实现代码
2019/01/15 Python
Django发送邮件功能实例详解
2019/09/02 Python
jenkins配置python脚本定时任务过程图解
2019/10/29 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
Python 存取npy格式数据实例
2020/07/01 Python
python raise的基本使用
2020/09/10 Python
CSS3自定义滚动条样式 ::webkit-scrollbar的示例代码详解
2020/06/01 HTML / CSS
全球最大的中文旅行网站:去哪儿网
2017/11/16 全球购物
马来西亚户外装备商店:PTT Outdoor
2019/07/13 全球购物
西铁城美国官方网站:Citizen Watch美国
2019/11/08 全球购物
估算杭州有多少软件工程师
2015/08/11 面试题
教师自我评价范文
2013/12/16 职场文书
安全生产专项整治方案
2014/05/06 职场文书
中国梦口号
2014/06/13 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
给女朋友道歉的话大全
2015/01/20 职场文书
2015年大学生工作总结
2015/04/21 职场文书
银行资信证明
2015/06/17 职场文书