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 ...
随机推荐
- php函数引用
//在自定义函数中,前面加一个&符号,是对返回静态变量的引用 function &test(){ static $a; $a += 1; echo $a; return $a; } / ...
- 最新ubuntu搭建公网个人邮件服务器(基于postfix,dovecot,mysql)
最近做了一个应用,需要用邮件发通知,但是免费的邮箱每天发信数量是有限制的,所以呢就想着搭建一个自己的邮件服务器,能够实现邮件的发送和接收即可,其中大概花了一个星期找资料,测试,终于成功了,写个教程 ...
- POJ 3692:Kindergarten(二分图最大团)
题目链接 题意 已知班级有g个女孩和b个男孩,所有女生之间都相互认识,所有男生之间也相互认识,给出m对关系表示哪个女孩与哪个男孩认识.现在要选择一些学生来组成一个集合,使得里面所有人都认识,求此集合最 ...
- JcApiHelper 简单好用的.Net ApiHelper
一 背景 随着前端技术的不断发展,各种框架逐渐成熟,前端 Angular,React,Vue 三分天下.再加上移动端的崛起,前后端分离开发成为主流,前端后端代码混合开发的方式沦为被淘汰的局面.如今 M ...
- Django随机生成验证码图片
PIL简介 什么是PIL PIL:是Python Image Library的缩写,图像处理的模块.主要的类包括Image,ImageFont,ImageDraw,ImageFilter PIL的导入 ...
- 【POJ - 1426】Find The Multiple(dfs)
-->Find The Multiple 原文是英语,直接上中文了 Descriptions: 给定一个正整数n,请编写一个程序来寻找n的一个非零的倍数m,这个m应当在十进制表示时每一位上只包含 ...
- 浅谈labviEW定时器
Labview提供了五种定时器:普通定时器3种: Tick Count (ms). Wait(ms).Wait Until Next ms Multipule(等待下一个毫秒的整数倍) API函数定 ...
- mpvue开发微信小程序
前段时间,美团开源了mpvue这个项目,使得我们又多了一种用来开发小程序的框架选项.由于mpvue框架是完全基于Vue框架的(重写了其runtime和compiler),因此在用法上面是高度和Vue一 ...
- springboot+redis实现session共享
1.场景描述 因项目访问压力有点大,需要做负载均衡,但是登录使用的是公司统一提供的单点登录系统,需要做session共享,否则假如在A机器登录成功,在B机器上操作就会存在用户未登录情况. 2. 解决方 ...
- Socket编程:listen()函数英文翻译
作者:C语言达人 链接:https://zhuanlan.zhihu.com/p/24951131 来源:知乎 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 本篇翻译的list ...