2014-01-23 4 views
0

Эй, ребята, я пытаюсь повернуть и изображение в 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; 
}; 

Initally Я создаю 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

@cookiemonster поэтому любым другим способом я могу повернуть изображение в IE 8. я должен был бы повернуть его любым заданным углом – nyfer

+0

создать скрипку для лучшего ответа. –

ответ

0

_img, скорее всего, не указывает на изображение в HTML в вашем вызове

setElementAngle(_img,0.45); 

Попробуйте изменить что

setElementAngle($('#_img'),0.45); 

Я предполагаю, что копия в памяти (т.е. _img) не имеет «макета», пока он фактически не находится в DOM, и к нему необходимо получить доступ.

Смежные вопросы