CSS3 filter 模糊滤镜的应用
CSS3 filter 模糊滤镜的应用
在segmentfault上回答过的一个问题,如何将网页CSS背景图高斯模糊且全屏显示
当时没有深入了解,只觉得滤镜应该只是应用于图片上的。而且各大网站的demo也清一色的图片加滤镜效果。
直到不久前进入nodejitsu的介绍页面,点击登录按钮之后出现弹窗,看到mask下面的模糊效果。
这不科学呀,心理活动如下:
这肯定是canvas实现的=>不对,难道现在不借助chrome extension接口就可以截取可见区域的图像数据=>那就是预先处理好模糊后的图片在弹窗时出现=>不对,国外工程师没这么蛋疼=>莫非是CSS3效果,而且是我不了解的=>打开源码,mask层没什么特殊的css3属性呀=>倒是body上有个
1 |
body { |
2 |
-webkit-backface-visibility: hidden; |
3 |
} |
=>而且比正常状态下多了modal-active属性,可惜该类在body上没有style,再往后面查,最后发现了magic code!
1 |
.modal-active .row { |
2 |
-webkit-filter: blur(3px); |
3 |
-moz-filter: blur(3px); |
4 |
-o-filter: blur(3px); |
5 |
-ms-filter: blur(3px); |
6 |
filter: blur(3px); |
7 |
} |
这里不讲 CSS3 滤镜的基本资料,可以参考:
- http://www.qianduan.net/what-is-webkit-filter.html
- https://dvcs.w3.org/hg/FXTF/raw-file/tip/filters/index.html
废话太多了,说明一些问题:
为什么不加在BODY上
你已经想到了吧,直接加到body上就会出现下面的样子。效果很逆天,可惜连表单也成天书了。当然也不能加到遮罩上,因为内容区域不在遮罩里。

应该怎么处理
为每个大的分割区域加个共同的类名,如.row,最后在body上统一加上blur样式。实际按照一般情况可能就是header,wrap和footer了。
当然也可以#header,#wrap,#footer {/* code */}
性能问题
看这篇文章 CSS filter effects get GPU-accelerated in Chrome
The feature first landed in WebKit last year and has been making its way into Web browsers. The feature was supported out of the box in Chrome 19, which was released last month, but it’s about to get a whole lot better. In recent Chromium builds, the filter effects are now offloaded to the GPU. This support for hardware-accelerated rendering will boost the performance of filter effects, making it practical to use in a wider range of scenarios.
Google highlighted the GPU support in an entry posted this week in the official Chromium blog. According to Google software engineer Stephen White, the performance of CSS filter effects in Chrome has been elevated to the point where it can now be used efficiently with animations or applied to an HTML5 video element.
英文水平不高就不翻译了,主要是说启用硬件加速后即使对视频(HTML5 video)使用滤镜也能流畅观看了。实际上比较疑惑的问题是css3属性如box-shadow,border-radius等等使用多了会不会有性能的问题?留待研究。
-webkit-backface-visibility 的作用
可以看这里:
- http://www.never-online.net/blog/article.asp?id=323
- http://stackoverflow.com/questions/3461441/prevent-flicker-on-webkit-transition-of-webkit-transform
http://stackoverflow.com/questions/2946748/iphone-webkit-css-animations-cause-flicker
解释一下,在用position:absulote+zindex!=0时用transform会偶尔出现页面会闪的现象,解决方法有三:
-webkit-backface-visibility: hidden;
-webkit-perspective: 1000;
该方法对于sprite图无效。body {-webkit-transform:translate3d(0,0,0);}
.no-flick{-webkit-transform:translate3d(0,0,0);}
比较多使用的解决方法是 -webkit-backface-visibility: hidden;
关于-webkit-backface-visibility有兴趣查看官方文档和上面的链接。
例子
刚好今天看到一个叫一搜的网站,看下前后的对比,效果还是不错的。


结论
滤镜效果不只能用于图片上,普通的元素包括DOM和视频(HTML5 video)也能使用。目前只有Chrome 18.0.976.0 (currently canary), Webkit nightly支持该属性。作为渐进增强还是可以使用的,和webkit speech一样,代码只有几句,何乐而不为?
其他
nodejitsu网站值得学习的还有很多,遮罩的fadeIn和弹窗的bouncedown效果都是使用css3的animation来实现的,当然也没有看到jQuery这个大块头。看他们网站的css可以找到不少值得学习的地方。
CSS3 filter 模糊滤镜的应用的更多相关文章
- CSS3 filter:drop-shadow滤镜与box-shadow区别应用 抄的
CSS3 filter:drop-shadow滤镜与box-shadow区别应用 这篇文章发布于 2016年05月18日,星期三,01:07,归类于 css相关. 阅读 5777 次, 今日 12 次 ...
- 【转载】CSS3 filter:drop-shadow滤镜与box-shadow区别应用
文章转载自 张鑫旭-鑫空间-鑫生活 http://www.zhangxinxu.com/wordpress/ 原文链接:http://www.zhangxinxu.com/wordpress/?p=5 ...
- CSS3 Filter详解(改变模糊度 亮度 透明度等方法)
CSS3 Filter(滤镜)属性提供了提供模糊和改变元素颜色的功能.CSS3 Fitler 常用于调整图像的渲染.背景或边框显示效果. -webkit-filter是css3的一个属性,Webkit ...
- 巧用 CSS3 filter(滤镜) 属性
原文链接:CSS3 filter(滤镜) 属性 效果预览 filter: grayscale(100%); 定义和使用 filter 属性定义了元素(通常是<img>)的可视效果(例如:模 ...
- [转]CSS3 Filter的十种特效
最近到处看到有人在说CSS3的filter一直没有时间自己去测试这效果.今天终于抽出时间学习这个CSS3的Filter.不整不知道呀,一整才让我感到吃惊,太强大了.大家先来看个效果吧: 我想光看上面的 ...
- css3图片模糊过滤效果
css3图片过滤效果,鼠标放上后其它图片模糊,鼠标所在位置的图片是清淅的,有效索引出当前的图片,对图片的模糊处理是本特效的亮点,你完全可以将模糊的效果应用于其它的图片特效中,你同样也可借此代码研究一下 ...
- css3图片模糊过滤特效
体验效果:点击这里查看效果 代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...
- 运用HTML5+CSS3和CSS滤镜做的精美的登录界面
原始出处http://chenjinfei.blog.51cto.com/2965201/774865 <!DOCTYPE HTML> <html> <head> ...
- filter 图片滤镜的各种设置
filter 图片滤镜 给当前元素加滤镜_改变它的明亮度 定义:filter 属性定义了元素(通常是<img>)的可视效果(例如:模糊与饱和度).作用在图片上或元素上.div{ },或 d ...
随机推荐
- CI控制器
当控制器要继承自定义的控制器的时候,有特定的定义: application/core/MY_Controller <?php class MY_Controller extends CI_Con ...
- 【半小时大话.net依赖注入】(一)理论基础+实战控制台程序实现AutoFac注入
系列目录 第一章|理论基础+实战控制台程序实现AutoFac注入 第二章|AutoFac的常见使用套路 第三章|实战Asp.Net Framework Web程序实现AutoFac注入 第四章|实战A ...
- Vue技术点整理-Vue CLI安装详解
一,脚手架安装 Node 版本要求 Vue CLI 需要 Node.js +).你可以使用 nvm 或 nvm-windows 在同一台电脑中管理多个 Node 版本. 1,全局安装Vue CLI ...
- 读取ClassPath下resource文件的正确姿势
1.前言 为什么要写这篇文章?身为Java程序员你有没有过每次需要读取 ClassPath 下的资源文件的时候,都要去百度一下,然后看到下面的这种答案: Thread.currentThread(). ...
- Django项目的创建和管理
1.主题 这部分教程主要介绍如何通过Pycharm创建.管理.运行一个Django工程.对于Django模块的相关知识大家可以参考Python社区. 2.准备环境 Django版本为2.0或更高 Py ...
- C++模版的用法
模板是实现代码重用机制的一种工具,实质就是实现类型参数化,即把类型定义为参数. C++提供两种模板:函数模板,类模板 函数模板 template <typename T> T myMax( ...
- Modbus RTU新版本指令介绍
Modbus RTU新版本指令介绍 TIA V13 SP1版本软件中提供了2个版本的Modbus RTU指令: 图1. 两个版本Modbus RTU指令 早期版本的Modbus RTU指令(图1. 中 ...
- shiro自定义异常无法被捕获总是抛出AuthenticationException解决方案
这个问题我也是出的莫名其妙,刚开始好好的,然后配置多realm之后出的. 现在直入主题 在继承了 org.apache.shiro.authc.pam.ModularRealmAuthenticato ...
- 小程序组件-swipe多页切换,并支持下拉刷新,上拉加载,menu动态联动切换
前言 最近一个小程序项目中遇到一个需求,就是实现类似资讯类app的多页面切换的那种效果, 如下图: 最终效果: 1.功能分析 首先实现这个功能分为三步: 实现顶部menu菜单 实现多页面滑动切换 支持 ...
- Spring Boot 邮件发送的 5 种姿势!
邮件发送其实是一个非常常见的需求,用户注册,找回密码等地方,都会用到,使用 JavaSE 代码发送邮件,步骤还是挺繁琐的,Spring Boot 中对于邮件发送,提供了相关的自动化配置类,使得邮件发送 ...