使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法
author:一佰互联 2019-04-21   click:378

今天在使用icloud的时候看到苹果icloud官网的毛玻璃效果非常赞,仔细研究了一下它的实现方式,是使用js配合background-image: -webkit-canvas的形式绘制出的毛玻璃背景图片。
不过今天又仔细研究了一下css3中的blur方法,可以实现同样的效果。且配合JS可以实现模糊缩放的效果

基础
先来看一下blur属性的表达式:

CSS Code复制内容到剪贴板
  1. filter:blur(add=add,direction,strength=strength)  

我们看到blur属性有三个参数:add、direction、strength。
Add参数有两个参数值:true和false。意思是指定图片是否被改变成模糊效果。    

Direction参数用来设置模糊的方向。模糊效果是按照顺时针方向进行的。其中0度代表垂直向上,每45度一个单位,默认值是向左的270度。角度方向的对应关系见下表:

实例
CSS代码

CSS Code复制内容到剪贴板
  1. .blur {    
  2.     filter: url(blur.svg#blur); /* FireFox, Chrome, Opera */  
  3.        
  4.     -webkit-filter: blur(10px); /* Chrome, Opera */  
  5.        -moz-filter: blur(10px);   
  6.         -ms-filter: blur(10px);       
  7.             filter: blur(10px);   
  8.        
  9.     filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius=10, MakeShadow=false); /* IE6~IE9 */  
  10. }  

HTML部分

XML/HTML Code复制内容到剪贴板
  1. <img src="mm1.jpg" class="blur" />  

其中blur(10px)中的大小决定了模糊后的图片大小和模糊程度