2016-08-23 3 views
1

Я работаю над веб-сайтом, который требует, чтобы встроенные стили были установлены на элементы JavaScript. Стили должны быть встроенными, поскольку значения, которые должны быть установлены, определены в JavaScript. До сих пор этот код работает в большинстве браузеров (Gears.leftBot относится к элементу):Настройка встроенных стилей с JavaScript не работает

Gears.leftBot.style = "transform: rotate(20deg);"; 

Однако в Microsoft Edge, этот код ничего не делает. Я даже запускаю эту строку кода в консоли напрямую без результата (смог подтвердить, что он распознает Gears.leftBot как элемент). Что я могу сделать, чтобы исправить это?

Полный JavaScript:

var Gears = { 
    //Dependencies 
    rightTop: document.getElementById('gear-rt'), 
    rightMid: document.getElementById('gear-rm'), 
    rightBot: document.getElementById('gear-rb'), 
    leftTop: document.getElementById('gear-lt'), 
    leftBot: document.getElementById('gear-lb'), 

    init : function(){ 
     Gears.scrollAnima(); 
    }, 

    scrollAnima : function(){ 
     var pos = window.pageYOffset; 
     var bigGearDeg = pos/1.389; 
     var midGearDeg = pos * 1.2; 
     var litGearDeg = pos * 1.44; 
     Gears.rightTop.style = "transform: rotate(" + bigGearDeg + "deg);"; 
     Gears.rightMid.style = "transform: rotate(-" + midGearDeg + "deg);"; 
     Gears.rightBot.style = "transform: rotate(" + litGearDeg + "deg);"; 
     Gears.leftTop.style = "transform: rotate(" + litGearDeg + "deg);"; 
     Gears.leftBot.style = "transform: rotate(-" + bigGearDeg + "deg);"; 
     setTimeout(function(){Gears.scrollAnima()}, 15); 
    } 
}; 

Gears.init(); 
+0

Побочное примечание, используйте requestAnimationFrame вместо SetTimeout – Sampson

ответ

1

Try:

Gears.leftBot.style.transform = 'rotate(20deg)' 

или:

Gears.leftBot.setAttribute('style', 'transform: rotate(20deg);') 
Смежные вопросы