Нет, в этом нет необходимости.
Вы можете сделать это двумя основными способами.
Динамически изменить стиль:
<p id="myElement">Here is some text to animate</p>
<script>
var pixels = 10; // e.g., if this were a dynamically changing variable
document.getElementById('myElement').style.width = pixels+'px';
</script>
Динамически изменить класс:
<style>
.tiny {width:10px}
</style>
<p id="myElement">Here is some text to animate</p>
<script>
document.getElementById('myElement').className = 'tiny';
</script>
Последний подход, вероятно, является лучшей практикой, поскольку он дает возможность разработчику контролировать все с помощью CSS, в то же время позволяя программисту JavaScript сосредоточиться только на функциональности.
Однако вВ случае переходов, когда вы хотите динамически изменять значения (например, увеличивая ширину на 1 каждую секунду), нецелесообразно определять класс для каждой возможной ширины на этом пути.Однако вы можете запросить саму таблицу стилей, чтобы получить эту информацию.Переменные CSS облегчат это, если они будут реализованы, но в настоящее время вы можете использовать что-то вроде функции getCSSPropertyValue со значением https://gist.github.com/990313, чтобы получить начальное и конечное значения из классов, определенных в таблице стилей, при обработке переходов стиля с помощью стиля.собственность.
var beginWidth = parseInt(getCSSPropertyValue('.small', 'width'));
var endWidth = parseInt(getCSSPropertyValue('.large', 'width'));
var itvl = setInterval(function () {
if (beginWidth++ > endWidth) {
clearInterval(itvl);
}
document.getElementById('myElement').style.width = beginWidth + 'px';
}, 10);