РЕДАКТИРОВАТЬ: Похоже, это был сбой Firefox.Перезапуск браузера исправил это.
Я написал функцию, которая должна постепенно увеличивать или уменьшать яркость элемента или скрещивать два элемента в зависимости от ввода.Параметры - это элемент, тип замирания и необязательный второй элемент.Следующий код прекрасно работает в Chrome, но не в Firefox:
var timeElapsed=0;
var opacity;
var opacity2=1;
function fade(element,type,element2)
{
if(timeElapsed==0)
type=='out' ? opacity=1 : opacity=0;
if(type=='in') opacity+=.01;
else if(type=='out') opacity-=.01;
else { opacity+=.01; opacity2-=.01; }
element.style.opacity=parseFloat((opacity+'').substr(0,4));
if(element2) element2.style.opacity=parseFloat((opacity2+'').substr(0,4));
timeElapsed++;
timeElapsed==100 ? timeElapsed=0 : setTimeout(function(){ fade(element,type,element2) },1);
}
Вот вызов функции:
fade(document.getElementById('someElement'),'out');
Кажется, проблема с setTimeout, потому чтов Firefox функция будет выполнена один раз, затем остановится.Есть идеи?