css以一个点为定点旋转的方法:1、新建一个HTML文件;2、通过img引入图片;3、给img标签添加css属性为“@keyframes rotate{0%{transform: rotate(0deg);}100%{transform: rotate(360deg);}}”即可实现以一个点为定点旋转。
本教程操作环境:Windows10系统、CSS3版、DELL G3电脑
css怎么实现以一个点为定点旋转?
css实现图片旋转,并设置旋转点
先做一点技术上的知识普及:
旋转 div 元素:
div { transform:rotate(7deg); -ms-transform:rotate(7deg); /* IE 9 */ -moz-transform:rotate(7deg); /* Firefox */ -webkit-transform:rotate(7deg); /* Safari 和 Chrome */ -o-transform:rotate(7deg); /* Opera */ }
transform 属性向元素应用 2D 或 3D 转换。该属性允许我们对元素进行旋转、缩放、移动或倾斜。
transform: none|transform-functions;
值 | 描述 |
---|---|
none | 定义不进行转换。 |
matrix(n,n,n,n,n,n) | 定义 2D 转换,使用六个值的矩阵。 |
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) | 定义 3D 转换,使用 16 个值的 4x4 矩阵。 |
translate(x,y) | 定义 2D 转换。 |
translate3d(x,y,z) | 定义 3D 转换。 |
translateX(x) | 定义转换,只是用 X 轴的值。 |
translateY(y) | 定义转换,只是用 Y 轴的值。 |
translateZ(z) | 定义 3D 转换,只是用 Z 轴的值。 |
scale(x,y) | 定义 2D 缩放转换。 |
scale3d(x,y,z) | 定义 3D 缩放转换。 |
scaleX(x) | 通过设置 X 轴的值来定义缩放转换。 |
scaleY(y) | 通过设置 Y 轴的值来定义缩放转换。 |
scaleZ(z) | 通过设置 Z 轴的值来定义 3D 缩放转换。 |
rotate(angle) | 定义 2D 旋转,在参数中规定角度。 |
rotate3d(x,y,z,angle) | 定义 3D 旋转。 |
rotateX(angle) | 定义沿着 X 轴的 3D 旋转。 |
rotateY(angle) | 定义沿着 Y 轴的 3D 旋转。 |
rotateZ(angle) | 定义沿着 Z 轴的 3D 旋转。 |
skew(x-angle,y-angle) | 定义沿着 X 和 Y 轴的 2D 倾斜转换。 |
skewX(angle) | 定义沿着 X 轴的 2D 倾斜转换。 |
skewY(angle) | 定义沿着 Y 轴的 2D 倾斜转换。 |
perspective(n) | 为 3D 转换元素定义透视视图。 |
然后大家在做的时候大多遇到的问题时,这个起始点,也就是旋转点的问题。我想让他这样转,他为什么就不听话呢?
这就要说说,transform origin了
设置旋转元素的基点位置:
div { 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 和 Chrome */ -webkit-transform-origin:20% 40%; /* Safari 和 Chrome */ -moz-transform: rotate(45deg); /* Firefox */ -moz-transform-origin:20% 40%; /* Firefox */ -o-transform: rotate(45deg); /* Opera */ -o-transform-origin:20% 40%; /* Opera */ }
transform-origin 属性允许您改变被转换元素的位置。
2D 转换元素能够改变元素 x 和 y 轴。3D 转换元素还能改变其 Z 轴。
为了更好地理解 transform-origin 属性。
Safari/Chrome 用户:为了更好地理解 transform-origin 属性用于 3D 转换的情况。
注释:该属性必须与 transform 属性一同使用。
transform-origin: x-axis y-axis z-axis;
值 | 描述 |
---|---|
x-axis |
定义视图被置于 X 轴的何处。可能的值:
|
y-axis |
定义视图被置于 Y 轴的何处。可能的值:
|
z-axis |
定义视图被置于 Z 轴的何处。可能的值:
|
最后,给大家呢演示一个实例demo:
原始图片为一个黑色正方形,我们希望它根据左上角的顶点进行旋转:
图片:
源码:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> img{ margin-top: 200px; margin-left: 500px; width: 100px; height: 100px; display: block; animation: rotate 6s linear infinite; transform-origin:0 0; } @keyframes rotate{ 0%{ transform: rotate(0deg); } 100%{ transform: rotate(360deg); } } </style> </head> <body> <img src="img/图片.png" /> </body> </html>
效果展示:
你自行复制代码吧。。。!!!
推荐学习:《css视频教程》
以上是css怎么实现以一个点为定点旋转的详细内容。更多信息请关注PHP中文网其他相关文章!