transform-origin属性怎么用

2020-07-23 10:20:49
transform-origin属性用于改变被转换元素的位置。在2D 转换元素中可以改变元素 x 和 y 轴的位置;3D 转换元素中还可以改变其 Z 轴的位置。

CSS3 transform-origin属性

作用:transform-origin 属性允许您改变被转换元素的位置。2D 转换元素能够改变元素 x 和 y 轴。3D 转换元素还能改变其 Z 轴。

语法:

transform-origin: x-axis y-axis z-axis;

描述
x-axis

定义视图被置于 X 轴的何处。可能的值:

● left

● center

● right

● length

● %

y-axis

定义视图被置于 Y 轴的何处。可能的值:

● top

● center

● bottom

● length

● %

z-axis定义视图被置于 Z 轴的何处。可能的值:length

注:该属性必须与 transform 属性一同使用。

CSS3 transform-origin属性的使用示例

<!DOCTYPE html><html><head><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>旋转红色的DIV元素,尝试更改其X轴和Y轴:</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>

效果图:

1.gif