Я работаю над веб-сайтом, который требует, чтобы встроенные стили были установлены на элементы 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();
Побочное примечание, используйте requestAnimationFrame вместо SetTimeout – Sampson