首页 > 开发 > CSS > 正文

css3 可以实现背景虚化但是一块不虚化的效果么

2017-09-12 09:39:22  来源: 网友分享

大概就是这个效果 其余的区域只是opacity不是100%而已 但是有一块是原样

这个不是在图片上 而是页面上处理


这个东西的用途就是在页面上做一个新功能提示 比如网页上多出一个新功能 为了让用户注意到 可能在页面加载进来的时候 我用一个黑色带透明的遮罩层把其余的位置全盖住 但是只把我要强调的地方露出来

一个实现方式我想到的是把那个地方做成图片扔到遮罩层上面 但是不可能每次都做图片啊

解决方案

    var c = document.createElement('canvas'),    w = window.innerWidth,    h = window.innerHeight;    document.body.appendChild(c);    c.style.position = 'absolute';    c.style.zIndex = 999;    c.style.top = 0;    c.style.left = 0;    c.style.width = w + 'px';    c.width = w;    c.style.height = h + 'px';    c.height = h;    c = c.getContext('2d');    c.fillStyle = 'rgba(0,0,0,0.5)';    c.fillRect(0, 0, w, h);    c.clearRect(w / 2 - 50, h / 2 - 50, 100, 100);

可以考虑用canvas绘图,比如像这样,在指定的位置挖个小框。