使用原生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 相关文章推荐
Jquery原生态实现表格header头随滚动条滚动而滚动
Mar 18 Javascript
简易的投票系统以及js刷票思路和方法
Apr 07 Javascript
分享五个有用的jquery小技巧
Oct 08 Javascript
jQuery实用技巧必备(中)
Nov 03 Javascript
jQuery qrcode生成二维码的方法
Apr 03 Javascript
jQuery中的deferred对象和extend方法详解
May 08 jQuery
使用jquery的jsonp如何发起跨域请求及其原理详解
Aug 17 jQuery
Koa2微信公众号开发之本地开发调试环境搭建
May 16 Javascript
vue2.0的虚拟DOM渲染思路分析
Aug 09 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
Sep 03 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
May 27 Javascript
JavaScript多种滤镜算法实现代码实例
Dec 10 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入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
PHP经典实用正则表达式小结
2017/05/04 PHP
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
Javascript数组的排序 sort()方法和reverse()方法
2012/06/04 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
jquery获取子节点和父节点的示例代码
2013/09/10 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
Vue项目实现简单的权限控制管理功能
2019/07/17 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
vue-video-player实现实时视频播放方式(监控设备-rtmp流)
2020/08/10 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
在Python中使用zlib模块进行数据压缩的教程
2015/06/26 Python
python批量实现Word文件转换为PDF文件
2018/03/15 Python
使用anaconda的pip安装第三方python包的操作步骤
2018/06/11 Python
Django中的forms组件实例详解
2018/11/08 Python
Python制作动态字符图的实例
2019/01/27 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
基于python计算并显示日间、星期客流高峰
2020/05/07 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
一些常用的HTML5模式(pattern) 总结
2015/07/14 HTML / CSS
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
10的分与合教学反思
2014/04/30 职场文书
五一活动标语
2014/06/30 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
出国签证在职证明
2014/09/20 职场文书
设备技术员岗位职责
2015/04/11 职场文书
初中政教处工作总结
2015/08/12 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android
使用Nginx+Tomcat实现负载均衡的全过程
2022/05/30 Servers