嘿伙计们正在尝试使用以下过滤器在IE 8中旋转和成像
所以我有这个设置角度的功能
var setElementAngle=function(ele,ang){
var angle = Math.PI / ang;
costheta = Math.cos(angle);
sintheta = Math.sin(angle);
ele.filters.item(0).M11 = costheta;
ele.filters.item(0).M12 = -sintheta;
ele.filters.item(0).M21 = sintheta;
ele.filters.item(0).M22 = costheta;
};
我最初使用下面的函数
创建一个img元素var create =function (el, attr, style) {
this.elem = document.createElement(el);
for (var k in attr) {
if (attr.hasOwnProperty(k)) {
this.elem.setAttribute(k, attr[k])
}
}
for (var k in style) {
if (style.hasOwnProperty(k)) {
this.elem.style[k] = style[k]
}
}
return this.elem
};
var _img=create('img',
{'id':'_img','width':'50','height':'53','border':'0','src':'10fqnav.jpg'},
{'position':'absolute',
'height':'53px',
'width':'50px',
'zIndex':'9001',
'top':'0px',
'right':'0px',
'display':'inline-block',
'filter':'progid:DXImageTransform.Microsoft.Matrix(sizingMethod=\'auto expand\')'
});
然后在我的代码中我改变了图像src属性,然后尝试旋转它
$('#_img').attr('src','fold_new.jpg');
setElementAngle(_img,0.45);
此时我收到以下错误
Message: 'filters' is null or not an object
任何想法可能是什么原因。我也是最初设置过滤器。
答案 0 :(得分:0)
_img
很可能不会在您的
setElementAngle(_img,0.45);
尝试将其更改为
setElementAngle($('#_img'),0.45);
我猜测内存中的副本(即_img
)没有“布局”,直到它实际上在DOM中并且必须在那里访问。