兼容所有浏览器的旋转效果-IE滤镜Matrix和CSS3transform
在现代浏览器中使用CSS3的transform样式即可轻松搞定,但是对于国内IE浏览器(特别是7,8)还占有较大份额的情况下,兼容性还是必须要考虑的,所以也特意记录下IE旋转滤镜的使用。
在IE下的旋转滤镜有两种:
第一种:
CSS样式
filter:progid:DXImageTransform.Microsoft.BasicImage(rotation:1)
其中rotation属性只有四个值:0,1,2,3 分别表示的旋转度数是:0度,90度,180度,270度。查看参考文档,请点击这里,但是想要旋转其他任意度数上面的方法就不适合了,这就需要下面的方法。
第二种
CSS样式
filter:progid:DXImageTransform.Microsoft.Matrix(enabled=bEnabled ,SizingMethod=sMethod ,FilterType=sType ,Dx=fDx ,Dy=fDy ,M11=fM11 ,M12=fM12 ,M21=fM21 ,M22=fM22)
- enabled:定义滤镜是否被禁止使用,取值范围为布尔值,当取值为true的时候滤镜可用;取值为false时,禁止使用滤镜。
- SizingMethod:定义元素使用图片时是否改变属性。当取值为clip to original时,元素不改变尺寸;当取值为auto expand时,元素改变尺寸。
- FilterType:定义元素旋转的方法。当取值为bilinear时,使用平滑、静态的显示效果;nearest neighhbor一般用于动态滤镜中。
- Dx:定义水平方向上的向量增加量。使用浮点数定义增量的大小,默认值为1.0。
- Dy:定义垂直方向上的向量增加量。使用浮点数定义增量的大小,默认值为1.0。
- M11:定义元素右侧边线水平方向上的显示位置。使用浮点数定义增量的大小,默认值为1.0。当取值大于1.0时,右边线向右移动,同时拉伸元素的宽度;当取值小于1.0时,右边线向左移动,同时减小元素的宽度。
- M12:定义元素底侧边线水平方向上的显示位置。使用浮点数定义增量的大小,默认值为0时。当取值大于0时,底部连线向右移动,同时拉伸元素的宽度;当取值小于0时,底部边线向左移动,同时拉伸元素的宽度。
- M21:定义元素右侧边线竖直方向上的显示位置。使用浮点数定义增量的大小,默认值为0。当取值大于0时,底部边线向下移动,同时拉伸元素的高度;当取值小于0时,底部边线向上移动,同时拉伸元素的高度。
- M22:定义元素底侧边线竖直方向上的显示位置。使用浮点数定义增量的大小,默认值为1.0。当取值大于1.0时,底部边线向下移,同时拉伸元素的高度;当取值小于1.0时,右边线向上移动,同时减小元素的高度。
以上是此滤镜全部的参数,但是平时用的最多的参数只有5个,所以可以简化为:
CSS样式
filter:progid:DXImageTransform.Microsoft.Matrix(SizingMethod=sMethod ,M11=fM11 ,M12=fM12 ,M21=fM21 ,M22=fM22)
SizingMethod一般选择“auto expand”,它和“clip to original”值的区别如下图(图中旋转角度都为45度):

下面来说下如何计算旋转值,也就是如何计算M11,M12,M21,M22的值。
其实也很简单,用计算器算即可,如果你要做旋转动画,那么需要JS去计算,M11=cos(角度值),M12=-sin(角度值),M21=sin(角度值),M22=cos(角度值)。例如:你想要旋转10度,那么sin(10)约=0.174,cos(10)约=0.985,所以四个值相应为:M11=0.985,M12=-0.174,M21=0.174,M22=0.985
在这里也想提下,IE Matrix滤镜还可以实现放大和缩小的效果,类似于zoom样式,只要将M11,M12,M21,M22的值乘以相应的倍数即可。
Ps:在IE6和IE7中如果将滤镜写在<style>标签或者样式表中,会出现以下两个问题,
- 此滤镜之后的样式都会失效;
- 旋转滤镜一个页面中只允许有一个。
这两点的解决方案是:将滤镜样式直接内嵌在元素标签上。T_T
如果有更好的解决方法可以留言。想了解更多Matrix滤镜,请猛戳这里和这里
这样配合CSS3样式transform即可兼容所有浏览器实现旋转效果。
原文出自:http://www.csscool.net/ie-matrix-and-css3-transform.html
兼容所有浏览器的旋转效果-IE滤镜Matrix和CSS3transform的更多相关文章
- 【原】CSS实现背景透明,文字不透明,兼容所有浏览器
11.11是公司成立的日子,16岁啦,我呢3岁半,感谢公司给了这样一个平台,让我得以学习和成长,这里祝愿公司发展越来越好~ 进入主题,每年11月11号是光棍节,产生于校园,本来只是一流传于年轻人的娱乐 ...
- CSS实现背景透明,文字不透明,兼容所有浏览器
11.11是公司成立的日子,16岁啦,我呢3岁半,感谢公司给了这样一个平台,让我得以学习和成长,这里祝愿公司发展越来越好~ 进入主题,每年11月11号是光棍节,产生于校园,本来只是一流传于年轻人的娱乐 ...
- JavaScript 图片的上传前预览(兼容所有浏览器)
功能描述 通过 JavaScript 实现图片的本地预览(无需上传至服务器),兼容所有浏览器(IE6&IE6+.Chrome.Firefox). 实现要点 ● 对于 Chrome.Fire ...
- 图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活
图片旋转+剪裁js插件(兼容各浏览器) « 张鑫旭-鑫空间-鑫生活 图片旋转+剪裁js插件(兼容各浏览器) by zhangxinxu from http://www.zhangxinxu.com 本 ...
- CSS 实现图片灰度效果 兼容各种浏览器
CSS 实现图片灰度效果 兼容各种浏览器如360浏览器 CSS实现图片灰度效果就是通过CSS样式让彩色图片呈现为灰色,相当于把一张图像的颜色模式调整为灰度,CSS可以通过以下几种方法来实现灰度效果. ...
- css gray,grayscale,css变灰兼容大部分浏览器
css gray,grayscale,css变灰兼容大部分浏览器 html { filter: url("data:image/svg+xml;utf8,<svg xmlns=\'ht ...
- JS兼容各个浏览器的本地图片上传即时预览效果
JS兼容各个浏览器的本地图片上传即时预览效果 很早以前 在工作曾经碰到这么一个需求,当时也是纠结了很久,也是google了很久,没有碰到合适的demo,今天特意研究了下这方面的的问题,所以也就做了个简 ...
- 兼容各浏览器的css背景图片拉伸代码
需要用到背景图拉伸,找到了下面这段css代码: filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='***.jpg' , s ...
- CSS兼容各浏览器的hack
CSS兼容各浏览器的hack:建议:尽可能的手写代码,可以有效的提高学习效率和深度.浏览器的种类多,麻烦自然也多,主要是各种浏览器对某些属性的渲染效果并不相同,所以有时候需要专门针对特定浏览器或者特定 ...
随机推荐
- Spring源码分析(三)容器核心类
摘要:本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 在上一篇文章中,我们熟悉了容器的基本用法.在这一篇,我们开始分析Spri ...
- nagios-4.0.8 安装部署
1.Nagios工作原理 Nagios周期性调用插件检测服务器状态,并维持一个队列,所有插件返回状态信息都进入队列,Nagios每次从队首开始读取信息,并把状态通过web显示. 安装完成后,在nagi ...
- zabbix 主动模式和被动模式配置文件对比
1.主动模式: 在web上看zabbix available 是红色 [root@python ~]# egrep -v '^#|^$' /etc/zabbix/zabbix_agentd.conf ...
- 404 Note Found队Beta4
目录 组员情况 组员1(组长):胡绪佩 组员2:胡青元 组员3:庄卉 组员4:家灿 组员:恺琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组 ...
- fio是如何运行的?
本文主要介绍fio是如何运行的,并且以单线程.单job为例 fio的入口在fio.c中的main函数,下面列出了main函数,此处只出示了一些调用的关键函数 int main(int argc, ch ...
- 洛谷P4245 【模板】MTT(任意模数NTT)
题目背景 模板题,无背景 题目描述 给定 22 个多项式 F(x), G(x)F(x),G(x) ,请求出 F(x) * G(x)F(x)∗G(x) . 系数对 pp 取模,且不保证 pp 可以分解成 ...
- Python点滴记录-day-01
python基础 - 基础 1.第一句python - 后缀名是可以可任意? - 导入模块时,如果不是.py文件 ==>以后文件后缀名是.py 2.两种执行方式 python解释器 py文件路径 ...
- 详解 Python3 正则表达式(四)
上一篇:详解 Python3 正则表达式(三) 本文翻译自:https://docs.python.org/3.4/howto/regex.html 博主对此做了一些注明和修改 ^_^ 更多强大的功能 ...
- Noip前的大抱佛脚----图论
目录 图论 知识点 二分图相关 DFS找环 并查集维护二分图 二分图匹配的不可行边 最小生成树相关 最短路树 最短路相关 负环 多源最短路 差分约束系统 01最短路 k短路 网络流 zkw费用流 做题 ...
- SpringMVC初写(三)Controller的生命周期
Spring框架默认创建的对象的方式是单例,所以业务控制器Controller也是一个单例对象 由此可证明,无论是同一次请求还是同一次会话和不同请求它的对象都是相同的 然而由于对象是单例的,随之而来的 ...