JavaScript를 사용하여 스타일 -webkit-transform을 동적으로 설정하는 방법은 무엇입니까?


112

-webkit-transform: rotate()JavaScript를 사용 하여 속성을 동적으로 변경하고 싶지만 일반적으로 사용되는 속성 setAttribute이 작동하지 않습니다.

img.setAttribute('-webkit-transform', 'rotate(60deg)');

.style하나 작동하지 않습니다 ...

JavaScript에서 어떻게 동적으로 설정할 수 있습니까?


당신에게 대신이 하나의 세트 스타일 속성을 실 거예요
무하마드 Umer에게

답변:


201

JavaScript 스타일 이름은 다음 WebkitTransformOrigin과 같습니다.WebkitTransform

element.style.webkitTransform = "rotate(-2deg)";

여기 에서 WebKit에 대한 DOM 확장 참조를 확인 하십시오 .


9
하나 이상을 원할 경우 공백으로 구분하십시오. 예 : element.style.webkitTransform = "rotate(-2deg) translateX(100px)";
Marc

1
이것은 Safari와 Chrome에서 잘 작동하지만 Firefox에서는 작동하지 않습니다. Firefox에서이 작업을 수행하는 것과 동일한 방법은 무엇입니까?
Ricardo Sanchez-Saez 2013 년

3
MozTransform은 당신의 친구가되어야합니다.
haagmm

@Olafur Apple 링크가 종료되었습니다.
Carcigenicate

문자열로이를 수행하는 유일한 방법입니다. 재귀 적이라면 꽤 느릴 것 같습니다.
BBaysinger

89

다음은 대부분의 일반 공급 업체에 대한 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)을 참조하십시오 .


5
jQuery는 자동으로 올바른 접두사를 선택하고 transform.
Blaise

@Blaise 그것은 새로운 것입니다. 어떤 버전에서 시작합니까?
Armel Larcier 2015-06-01

1
jQuery 1.8.0 이후입니다. Github의에서 확정
블 레즈

1
win.style.transform ="translate(-50%)"작동하지 않는
Momin


5

이를 통해 수행 setAttribute하려면 다음 style과 같이 속성을 변경하십시오 .

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)';

2

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>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.