Translate3d는 CSS3이지만 대부분의 브라우저는 아직 구현하지 않았습니다 (Chrome/Safari가 Webkit을 통해 지원하는 유일한 주요 기능 임). 그것은 3 차원 변환 스타일입니다.
그래서, 또한 Z 축 잘라 2-D 변환이 있습니다
translate3d(X,Y,Z); // or translateX(X), translateY(Y), translateZ(Z);
고맙게도, 2-D 변형이 거의 모든 주요 브라우저 (의해 지원되는
translate(X,Y);
진다 IE9 이상) 브라우저 프리픽스가 필요합니다. 당신의 예에서,이 보일 것 같은 : http://www.w3.org/TR/css3-3d-transforms/
2-D의 한 가지 단점은 변환
http://www.w3.org/TR/css3-2d-transforms/
은 다음과 같습니다 조금 더 2-D에 3-D 참조 변환에 대한
/* CSS */
selector {
transform: translate(500px, 0);
-o-transform: translate(500px, 0); /* Opera */
-ms-transform: translate(500px, 0); /* IE 9 */
-moz-transform: translate(500px, 0); /* Firefox */
-webkit-transform: translate(500px, 0); /* Safari and Chrome */
}
/* JS */
element.style.transform = 'translate(500px, 0)';
element.style.OTransform = 'translate(500px, 0)'; // Opera
element.style.msTransform = 'translate(500px, 0)'; // IE 9
element.style.MozTransform = 'translate(500px, 0)'; // Firefox
element.style.WebkitTransform = 'translate(500px, 0)'; // Safari and Chrome
3-D 변환과 달리 GPU 가속이 아닙니다. 얼마나 많은 하드웨어 가속이 전환 및 애니메이션에 도움이되는지에 대한 좋은 정보는이 링크를 참조하십시오 : http://ariya.blogspot.com/2011/07/fluid-animation-with-accelerated.html.
더 크로스 브라우저의 선 (善)의 경우 올바른 브라우저가 적용 할 스타일을 변환 찾는 함수를 작성 (또는 변환을 지원하지 않는 브라우저 결정)과 같이 할 수 있습니다 : 당신은 또한 사용할 수 있습니다
var getTransformProperty = function(node) {
var properties = [
'transform',
'WebkitTransform',
'msTransform',
'MozTransform',
'OTransform'
];
var p;
while (p = properties.shift()) {
if (typeof node.style[p] != 'undefined') {
return p;
}
}
return false;
};
을 기능 검색 라이브러리는 Modernizr입니다.
좋은 대답은 +1입니다. 위의 모든 브라우저에서 Javascript를 사용하여'transform-origin '을 설정하는 방법을 알고 계시지 않습니까? –