IE矩阵Matrix滤镜旋转与缩放及如何结合transform

Matrix滤镜 基本语法如下:

filter: progid:DXImageTransform.Microsoft.Matrix( enabled= bEnabled , SizingMethod= sMethod , FilterType= sType , Dx= fDx , Dy= fDy , M11= fM11 , M12= fM12 , M21= fM21 , M22= fM22 ) 


实现旋转与缩放功能:

filter: progid:DXImageTransform.Microsoft.Matrix( SizingMethod= sMethod , M11= fM11 , M12= fM12 , M21= fM21 , M22= fM22 )
其中SizingMethod这里死活就是"auto expand"了,也就是说 我们要实现元素的旋转与缩放只要关心M11, M12, M21, M22,这几个参数就是2×2矩阵中的的四个数值。

filter:progid:DXImageTransform.Microsoft.Matrix(M11=cos(roation),M12=-sin(roation),M21=sin(roation),M22=cos(roation),SizingMethod='auto expand'); 

js实现:

var fnRotateScale = function(dom, angle, scale) { 
if (dom && dom.nodeType === 1) { 
angle = parseFloat(angle) || 0; 
scale = parseFloat(scale) || 1; 
if (typeof(angle) === "number") { 
//IE 
var rad = angle * (Math.PI / 180); 
var m11 = Math.cos(rad) * scale, m12 = -1 * Math.sin(rad) * scale, m21 = Math.sin(rad) * scale, m22 = m11; 
if (!dom.style.Transform) { 
dom.style.filter = "progid:DXImageTransform.Microsoft.Matrix(M11="+ m11 +",M12="+ m12 +",M21="+ m21 +",M22="+ m22 +",SizingMethod='auto expand')"; 
} 
//Modern 
dom.style.MozTransform = "rotate("+ angle +"deg) scale("+ scale +")"; 
dom.style.WebkitTransform = "rotate("+ angle +"deg) scale("+ scale +")"; 
dom.style.OTransform = "rotate("+ angle +"deg) scale("+ scale +")"; 
dom.style.Transform = "rotate("+ angle +"deg) scale("+ scale +")"; 
} 
} 
}; 





出处:http://www.jb51.net/css/66803.html

11



111

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值