使用css borer实现图层蒙版效果
2024-08-30 19:47:19
需要js
思路:假设目标元素是target。在外层定义元素宽高等于target,通过border设置元素铺满整个文档,设置border的透明图,实现蒙版,在元素的内部设置子元素,宽高100%;设置圆角边框50%; 设置box-shadow inset显示
代码:
<span class="demo3">我的信息</span>
<div class="cover"></div>
css
.cover{
position:absolute;
border: 0 solid #000;
left:;
top:;
right:;
bottom:;
opacity: 0.75;
overflow: hidden;
display: none;//防止页面闪现大圆,在设置完元素的样式之后再显示 }
.cover::before{
content:"";
width:100%;
position: absolute;
height:100%;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
border-radius: 50%;
border:400px solid #000;
left:-400px;
top:-400px;
box-shadow: 0 0 0 100px #000;
}
js代码:
$(document).ready(function(){
var w_w=$(document).width();//获取文档的宽度
var w_h=$(document).height();//获取文档的高度
var s_l=$(document).scrollLeft();//获取窗口左边滚动的距离
var s_t=$(document).scrollTop();//获取窗口顶部滚动的距离
var t_w=$(".demo3").width();//获取目标元素的宽度
var t_h=$(".demo3").height();//获取目标元素的高度
var o_l=$(".demo3").offset().left;//获取目标元素相对于当前窗口左边的距离
var o_t=$(".demo3").offset().top;//获取目标元素距离当前窗口上部的距离
//设置蒙版元素的border
$(".cover").show().css({"width":t_w+"px","height":t_h+"px","border-top-width":s_t+o_t+"px","border-right-width":(w_w-o_l-s_l-t_w)+"px","border-bottom-width":(w_h-s_t-o_t-t_h)+"px","border-left-width":o_l+s_l+"px"});
//border-top-width:目标元素距离当前窗口上部的距离+窗口顶部滚动的距离
//border-right-width:文档的宽度-目标元素距离当前窗口左边的距离-窗口左边滚动的距离-目标元素的宽度
//border-bottom-width:文档的高度-目标元素距离当前窗口上部的距离-窗口顶部滚动的距离-目标元素的高度
//border-left-width:目标元素距离当前窗口左边的距离+窗口左边滚动的距离
});
来自:http://www.zhangxinxu.com/wordpress/2016/03/better-black-mask-guide-overlay-method/
最新文章
- java-获取随机字符串
- python 使用 setup.py 方式安装及包的卸载
- 简单模拟struts2核心控制器利用反射原理实现参数传递和物理视图跳转
- XML约束图解
- Linux中Firefox——Firebug插件安装及使用
- 深度学习工具caffe具体安装指南
- java--异常处理总结
- python并发编程之多线程
- 使用json文件给es中导入数据
- java常用数据类型使用Day008
- 一天带你入门到放弃vue.js(二)
- redis命令Sortedset 类型(八)
- 为Linux技术学习推荐看的书籍—《Linux就该这么学》
- 【Linux】Centos之安装Nginx及注意事项
- js字符串截取为数组
- How to Use GNOME Shell Extensions
- mybatis 使用oracle merge into 语句踩坑实录
- UI5-学习篇-9-本地Eclipse UI5应用发布到SAP前端服务器
- python 数据类型三 (字典)
- Azure IoT 预配置解决方案