原生JS实现添加简单遮罩层
来源:互联网 发布:测声音频率软件 编辑:程序博客网 时间:2024/05/22 12:58
效果:给页面任一元素添加一个透明遮罩层(透明度可变,且有默认值),兼容IE8+。
- 先呈上简单的不能再简单的页面布局和样式。
<style>body{ margin:0; padding:50px;}#container{ width:200px; height:200px; margin:40px; background:red;}</style><body><div id="container"></div></body>
2 . 开始正式的JS函数封装
var oDiv=document.getElementById('container');addMask(oDiv);function addMask(ele,opacity){ var opacity=opacity || 0.2; // 默认设为0.2 //获取目标对象元素的边距及宽高 var rect=ele.getBoundingClientRect(); //获取到对象元素的样式来确定遮罩层的位置 var style=getComputedStyle(ele,null); //创建一个新的div var oMask=document.createElement('div'); // 开始设置遮罩层的样式 oMask.style.position='absolute'; oMask.style.left=(ele.offsetLeft- parseInt(style.marginLeft) ) + 'px'; oMask.style.top=(ele.offsetTop - parseInt(style.marginTop) ) + 'px'; oMask.style.width=rect.width + parseInt(style.marginLeft) + parseInt(style.marginRight) + 'px'; oMask.style.height=rect.height + parseInt(style.marginTop) + parseInt(style.marginBottom) + 'px'; oMask.style.zIndex=999; oMask.style.opacity= " " + opacity; oMask.style.backgroundColor='blue'; ele.parentNode.appendChild(oMask);}
到这,一个简易的遮罩函数就完成了。
解释下上面用到的两个方法:
元素.getBoundingClientRect()
它获取到的是元素各边到页面上边和页面左边的距离,以及元素宽高。
其实就只有right 和 bottom跟一般的CSS有点不同。
另外,如果和 getClientRects 的使用区别,需百度一下。
getComputedStyle 和 ele.style
getComputedStyle
获取的是元素身上最终起作用的样式,但它只读。
IE9(不含)以下用currentStyle
。
而ele.style
则只能获取到行间样式,但它即可读又可写。
0 0
- 原生JS实现添加简单遮罩层
- 简单实现原生JS中的多重继承
- 原生js实现简单的展开收缩
- 原生JS的简单tab切换实现
- 简单原生js实现开关门效果
- 原生 JS 懒加载简单实现
- 原生js实现半透明遮罩层
- 原生js实现半透明遮罩层
- 原生js实现class的添加和删除
- 原生js实现导航栏点击之后添加样式
- 原生JS实现的简单“瀑布流”布局
- [原生js] 简单一招实现json数据可视化
- 用原生JS实现一个简单的计时器demo
- 原生JS实现的简单“瀑布流”布局
- 原生Js无缝滚动效果的简单实现
- 原生JS实现的简单“瀑布流”布局
- 原生js实现ajax的一个简单demo
- 用原生JS实现简单的多选框功能
- ArcGIS API for JavaScript 4.2发布——厉害了我的ArcGIS
- selenium ide介绍
- HUD2217
- python urllib2 urlopen 报BadStatusLine 报错
- Hadoop集群的HA简单说明
- 原生JS实现添加简单遮罩层
- linux 下 mount 挂载 无写文件权限问题解决
- 使用反射在泛型为Integer的ArrayList中添加String类型的数据
- Android 自定义ProgressBar显示百分比
- 基础练习 2n皇后问题
- PAT 1023. Have Fun with Numbers
- HTML框架之图表——Echarts
- Oracle 用shutdown+immediate关机后启动方法
- OpenGL鱼眼球面投影