обясните плз почему мой SetInterval так странно себя ведет?
var alert_stylesheet = document.styleSheets[1]; var o=0; function my_alert() { var t = setInterval(function() { o = o+1; if(o!=51) { alert_stylesheet.deleteRule(0); alert_stylesheet.insertRule(".overlay{background-color: gray; opacity: 0."+o+"; width: 100%; height: 100%; position: fixed; left: 0; top: 0;}",0); } else { clearInterval(t); alert_stylesheet.deleteRule(0); alert_stylesheet.insertRule(".overlay{background-color: gray; opacity: 0.50; width: 100%; height: 100%; position: fixed; left: 0; top: 0;}",0); } }, 125); } Задача этого скрипта - затемнение страницы. На всю страницу накладывается див с серым фоном. Скрипт должен менять opacity дива. И он меняет. Но сразу после этого страница начинает затемняться еще раз. Объясните мне плз откуда взялось второе затемнение? |
Цитата:
Тестируй его и будет тебе счастие... |
Это не касается конечно setInterval, но! Этот код работы с таблицей стилей не кроссбраузерный. Да и нафиг он не вперся вообще тут. Используй element.style непосредственно. Например
var overlay = document.querySelector('.overlay'); overlay.style.opacity: 0.5; Цвет и прочие свойства задай в css. Да и анимацию можно тоже в css замутить. Никто не погибнет если увидит в архивном браузере переход без анимации. |
Часовой пояс GMT +3, время: 02:00. |