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 ...
随机推荐
- 使用elasticsearch启动项目报错failed to load elasticsearch nodes 。。。。。No type specified for field [name]
failed to load elasticsearch nodes .....No type specified for field [name]翻译: 加载ElasticSearch节点失败... ...
- jenkin+Git子模块自动拉取代码
jenkins+Git子模块自动拉取代码 添加Git子模块 先克隆想要添加子模块的仓库git clone ssh://git@ip:port/user/project.git,这个是主目录. 进入仓库 ...
- Codeforces 1133E - K Balanced Teams - [DP]
题目链接:https://codeforces.com/contest/1133/problem/C 题意: 给出 $n$ 个数,选取其中若干个数分别组成 $k$ 组,要求每组内最大值与最小值的差值不 ...
- 大白话5分钟带你走进人工智能-第31节集成学习之最通俗理解GBDT原理和过程
目录 1.前述 2.向量空间的梯度下降: 3.函数空间的梯度下降: 4.梯度下降的流程: 5.在向量空间的梯度下降和在函数空间的梯度下降有什么区别呢? 6.我们看下GBDT的流程图解: 7.我们看一个 ...
- 浅说——数位DP
老子听懂了!!!!! 好感动!!! 不说多了:Keywords: 数位DP,二进制,异或. “在信息学竞赛中,有一类与数位有关的区间统计问题.这类问题往往具有比较浓厚的数学味道,无法暴力求解,需要在数 ...
- 并发编程-concurrent指南-阻塞队列-同步队列SynchronousQueue
SynchronousQueue:同步Queue,属于线程安全的BlockingQueue的一种,此队列设计的理念类似于"单工模式",对于每个put/offer操作,必须等待一个t ...
- SCUT 125 :笔芯回文(DP)
https://scut.online/p/125 125. 笔芯回文 题目描述 bxbx有一个长度一个字符串SS,bxbx可以对其进行若干次操作. 每次操作可以删掉一个长度为k(1 \leq k \ ...
- 站在巨人的肩膀上看Servlet——原来如此(更适合初学者认识Servlet)
前言: 有段时间没更新博客了,这段时间因为要准备考试,考完试后又忙了一阵别的事,一直没能静下心来写博客.大学考试真是越来越恶心了,各种心酸,那酸爽,够味.不过还好,马上就要大三了,听大三学长学姐说大三 ...
- [开源]OSharpNS 步步为营系列 - 3. 添加业务服务层
什么是OSharp OSharpNS全称OSharp Framework with .NetStandard2.0,是一个基于.NetStandard2.0开发的一个.NetCore快速开发框架.这个 ...
- 雅阁微信群、雅阁车友群、十代雅阁交流微信QQ群
最近一直在关注第十代雅阁,不论是普通汽油版本还是油电混动版本都很不错,在网上看到很多评测文章和视频 后续都会整理发布到微信群中. 由于论坛发帖,博客发文都不是很方便,为了及时沟通,先创建了微信群,方便 ...