Я только что обнаружил anime.js, и мне кажется, что это правильный инструмент для того, что мне нужно (анимация некоторых веб-уроков в 2D).Проблема в том, что я использую MathML (часть стандарта HTML5), который использует теги "математика".
HTML
<math>
<mrow>
<msqrt>
<mrow>
<msup class="ml4">
<mi class="letter">b</mi>
<mn>2</mn>
</msup>
</mrow>
</msqrt>
</mrow>
</math>
JS
<script type="text/javascript" src="anime.min.js"></script>
<script>
anime.timeline({loop: true})
.add({
targets: '.ml4 .letter',
opacity: [0, 1],
scale: [0.2, 1],
duration: 800
});
</script>
Когда я пытаюсь просто анимировать буквы внутри математического тега (непрозрачность, масштаб, длительность), я получаю:
Если я использую anime.min.js (2.0)
В Firefox
"TypeError: right-hand side of 'in' should be an object, got undefined"
-> anime.min.js:9:136
В Safari
"TypeError: a.style is not an Object. (evaluating 'b in a.style')"
-> "B" -> anime.min.js:9:145
Если я использую anime.js (2.0)
В Firefox
"TypeError: right-hand side of 'in' should be an object, got undefined"
-> anime.min.js:346:5
В Safari
"TypeError: a.style is not an Object. (evaluating 'b in a.style')"
-> "getCSSValue" -> anime.min.js:346
В обоих случаях математическая формула выглядит просто отлично, но анимация не работает.Я пробовал предыдущие версии anime.js с тем же результатом.
Я играл с кодом, и анимация возвращается + сообщение об ошибке исчезает в Firefox и Safari, если я избавляюсь от тега "math".Но тогда, конечно, математическая формула - беспорядок, который не помогает.Но, похоже, проблема связана только с этим математическим тегом.Я также пытался стилизовать, развернуть тег math и внутренние теги, но ошибка остается.
Я мог понять, что этот тег не поддерживается animate.js, но анимация работает нормально и без каких-либо ошибок в моем Coda2(программное обеспечение для веб-разработки) на Mac, в отдельном браузере.Так что это кажется очень зависимым от браузера, но пока это единственный браузер, который, кажется, считает скрипт действительным.
Я не нашел в сети ничего, что касалось бы и anime.js, и MathML, так что это сложночтобы сказать, если это ошибка или ошибка с моей стороны.
Спасибо.
https://jsfiddle.net/bt4u23rh/1/