Я пытаюсь динамически удалить правило, а затем добавить новое вместо него, чтобы получить вычисленную анимацию для динамически изменяемого div innerHTML.
var ss = document.styleSheets ;
for(j=0;j<ss[0].cssRules.length;j++)
if(ss[0].cssRules[j].name == "slide")
{
ss[0].deleteRule(j);
break;
}
ss[0].addRule('@keyframes slide', 'from {top:0px;} to {top:-300px;}', 0);
Приведенный выше код должен удалить анимацию CSS и вставить новую.
Проблема заключается в символе '@', если я удаляю его, код проходит, но тогда это не анимация, т. Е. Потому что у него нет идентификатора @keyframes. Причина, по которой я так поступаю, заключается в том, что у вас нет переменных в css для ie11, и вы не можете изменить csstext таблицы стилей! Поэтому я подумал удалить целое правило и вставить новое.
Все, что я пытаюсь сделать, это динамически изменить это правило:
@keyframes slide {
from {top:0px;}
to {top:-100px;}
}
К этому правилу, например:
@keyframes slide {
from {top:0px;}
to {top:-300px;}
}
Это действительно боль в шее, пытаться иметь дело с особым миром, т. Е. !!
Спасибо за вашу помощь.