属性定义及使用说明
transform-Origin属性允许您更改转换元素的位置。
2D转换元素可以改变元素的X和Y轴。 3D转换元素,还可以更改元素的Z轴。
为了更好地理解Transform-Origin属性,请查看:
<!DOCTYPE html> <html> <head> <title>Web176教程网(web176.com)</title> <style> #div1 { position: relative; height: 200px; width: 200px; margin: 50px; padding:10px; border: 1px solid black; } #div2 { padding:50px; position: absolute; border: 1px solid black; background-color: red; transform: rotate(45deg); transform-origin:20% 40%; -ms-transform: rotate(45deg); /* IE 9 */ -ms-transform-origin:20% 40%; /* IE 9 */ -webkit-transform: rotate(45deg); /* Safari and Chrome */ -webkit-transform-origin:20% 40%; /* Safari and Chrome */ -moz-transform: rotate(45deg); /* Firefox */ -moz-transform-origin:20% 40%; /* Firefox */ -o-transform: rotate(45deg); /* Opera */ -o-transform-origin:20% 40%; /* Opera */ } </style> <script> function changeRot(value) { document.getElementById('div2').style.transform="rotate(" + value + "deg)"; document.getElementById('div2').style.msTransform="rotate(" + value + "deg)"; document.getElementById('div2').style.webkitTransform="rotate(" + value + "deg)"; document.getElementById('div2').style.MozTransform="rotate(" + value + "deg)"; document.getElementById('div2').style.OTransform="rotate(" + value + "deg)"; document.getElementById('persp').innerHTML=value + "deg"; } function changeOrg() { var x=document.getElementById('ox').value; var y=document.getElementById('oy').value; document.getElementById('div2').style.transformOrigin=x + '% ' + y + '%'; document.getElementById('div2').style.msTransformOrigin=x + '% ' + y + '%'; document.getElementById('div2').style.webkitTransformOrigin=x + '% ' + y + '%'; document.getElementById('div2').style.MozTransformOrigin=x + '% ' + y + '%'; document.getElementById('div2').style.OTransformOrigin=x + '% ' + y + '%'; document.getElementById('origin').innerHTML=x + "% " + y + "%"; } </script> </head> <body> <p>Rotate the red div element, try changing its X-axis and Y-axis:</p> <div id="div1"> <div id="div2">HELLO</div> </div> Rotate: <input type="range" min="-360" max="360" value="45" onchange="changeRot(this.value)" /> transform: rotateY:(<span id="persp">45deg</span>); <br><br> X-axis:<input type="range" min="-100" max="200" value="20" onchange="changeOrg()" id="ox" /><br> Y-axis:<input type="range" min="-100" max="200" value="40" onchange="changeOrg()" id="oy" /> transform-origin: <span id="origin">20% 40%</span>; </body> </html>
注意: 使用此属性必须先使用 transform 属性。
Tip:Safari/Chrome用户:为了更好地理解3D 转换属性,请查看:
<!DOCTYPE html> <html> <head> <title>Web176教程网(web176.com)</title> <style> #div1 { position: relative; height: 200px; width: 200px; margin: 50px; padding:10px; border: 1px solid black; } #div2 { padding:50px; position: absolute; border: 1px solid black; background-color: red; transform: rotateY(70deg); transform-origin:50% 50% 100px; -webkit-transform: rotateY(70deg); /* Safari and Chrome */ -webkit-transform-origin:50% 50% 100px; /* Safari and Chrome */ } </style> <script> function changeRot(value) { document.getElementById('div2').style.transform="rotateY(" + value + "deg)"; document.getElementById('div2').style.webkitTransform="rotateY(" + value + "deg)"; document.getElementById('div2').style.MozTransform="rotateY(" + value + "deg)"; document.getElementById('div2').style.OTransform="rotateY(" + value + "deg)"; document.getElementById('persp').innerHTML=value + "deg"; } function changeOrg() { var x=document.getElementById('ox').value; var y=document.getElementById('oy').value; var z=document.getElementById('oz').value; document.getElementById('div2').style.transformOrigin=x + '% ' + y + '% ' + z + 'px'; document.getElementById('div2').style.webkitTransformOrigin=x + '% ' + y + '% ' + z + 'px'; document.getElementById('div2').style.MozTransformOrigin=x + '% ' + y + '% ' + z + 'px'; document.getElementById('div2').style.OTransformOrigin=x + '% ' + y + '% ' + z + 'px'; document.getElementById('origin').innerHTML=x + "% " + y + "% " + z + "px"; } </script> </head> <body> <p><b>Note:</b> Internet Explorer 9 and earlier do not support 3D-transforms.</p> <p>Rotate the red div element, try changing its X-, Y-, and Z-axis:</p> <div id="div1"> <div id="div2">HELLO</div> </div> Rotate:<br> <input type="range" min="-360" max="360" value="70" onchange="changeRot(this.value)" /><br> -webkit-transform: rotateY:(<span id="persp">70deg</span>); <br> X-axis:<input type="range" min="-100" max="200" value="50" onchange="changeOrg()" id="ox" /><br> Y-axis:<input type="range" min="-100" max="200" value="50" onchange="changeOrg()" id="oy" /><br> Z-axis:<input type="range" min="-100" max="200" value="100" onchange="changeOrg()" id="oz" /><br> -webkit-transform-origin: <span id="origin">50% 50% 100px</span>; </body> </html>
默认值: | 50% 50% 0 |
---|---|
继承: | no |
版本: | CSS3 |
JavaScript 语法: | object.style.transformOrigin=”20% 40%” |
语法
transform-origin: x-axis y-axis z-axis;
值 | 描述 |
---|---|
x-axis | 定义视图被置于 X 轴的何处。可能的值:leftcenterrightlength% |
y-axis | 定义视图被置于 Y 轴的何处。可能的值:topcenterbottomlength% |
z-axis | 定义视图被置于 Z 轴的何处。可能的值:length |
浏览器支持
表格中的数字表示支持该属性的第一个浏览器版本号。
紧跟在 -webkit-, -ms- 或 -moz- 前的数字为支持该前缀属性的第一个浏览器版本号。
属性 | 谷歌 | IE | 火狐 | 苹果 | opera |
---|---|---|---|---|---|
transform-origin (two-value syntax) | 36.0 4.0 -webkit- | 10.0 9.0 -ms- | 16.0 3.5 -moz- | 9.0 3.2 -webkit- | 23.0 15.0 -webkit- 10.5 -o- |
transform-origin (three-value syntax) | 36.0 12.0 -webkit- | 10.0 | 16.0 10.0 -moz- | 9.0 4.0 -webkit- | 23.0 15.0 -webkit- |
实例
设置旋转元素的基点位置:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Web176教程网(web176.com)</title> <style> #div1 { position: relative; height: 200px; width: 200px; margin: 100px; padding:10px; border: 1px solid black; } #div2 { padding:50px; position: absolute; border: 1px solid black; background-color: red; transform: rotate(45deg); transform-origin:20% 40%; -ms-transform: rotate(45deg); /* IE 9 */ -ms-transform-origin:20% 40%; /* IE 9 */ -webkit-transform: rotate(45deg); /* Safari and Chrome */ -webkit-transform-origin:20% 40%; /* Safari and Chrome */ } </style> </head> <body> <div id="div1"> <div id="div2">HELLO</div> </div> </body> </html>
作者:terry,如若转载,请注明出处:https://www.web176.com/css3transform/5119.html