Как установить стиль-webkit-transform динамически с помощью JavaScript?
Я хочу изменить -webkit-transform: rotate()
свойство с использованием JavaScript динамически, но обычно используется setAttribute
не работает:
img.setAttribute('-webkit-transform', 'rotate(60deg)');
The .style
не работает...
как я могу установить это динамически в JavaScript?
5 ответов:
имена стилей JavaScript являются
WebkitTransformOrigin
иWebkitTransform
element.style.webkitTransform = "rotate(-2deg)";
Проверьте ссылку на расширение DOM для WebKit здесь.
вот обозначения JavaScript для наиболее распространенных поставщиков:
webkitProperty MozProperty msProperty OProperty property
Я сбрасываю встроенные стили преобразования, такие как:
element.style.webkitTransform = ""; element.style.MozTransform = ""; element.style.msTransform = ""; element.style.OTransform = ""; element.style.transform = "";
и вот так с помощью jQuery:
$(element).css({ "webkitTransform":"", "MozTransform":"", "msTransform":"", "OTransform":"", "transform":"" });
см. сообщение в блоге кодирование префиксов поставщиков с помощью JavaScript (2012-03-21).
если вы хотите сделать это через
setAttribute
изменить вот так:element.setAttribute('style','transform:rotate(90deg); -webkit-transform: rotate(90deg)') //etc
Это было бы полезно, если вы хотите сбросить все другие встроенные стили и снова установить только необходимые значения свойств стиля, но в большинстве случаев вы можете этого не хотеть. Вот почему все советовали использовать это:
element.style.transform = 'rotate(90deg)'; element.style.webkitTransform = 'rotate(90deg)';
выше эквивалентно
element.style['transform'] = 'rotate(90deg)'; element.style['-webkit-transform'] = 'rotate(90deg)';
чтобы анимировать 3D-объект, используйте код:
<script> $(document).ready(function(){ var x = 100; var y = 0; setInterval(function(){ x += 1; y += 1; var element = document.getElementById('cube'); element.style.webkitTransform = "translateZ(-100px) rotateY("+x+"deg) rotateX("+y+"deg)"; //for safari and chrome element.style.MozTransform = "translateZ(-100px) rotateY("+x+"deg) rotateX("+y+"deg)"; //for firefox },50); //for other browsers use: "msTransform", "OTransform", "transform" }); </script>