• 技术文章 >web前端 >前端问答

    css怎么实现以一个点为定点旋转

    藏色散人藏色散人2023-01-31 11:12:16原创84

    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 轴的何处。可能的值:

    • left
    • center
    • right
    • length
    • %
    y-axis

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

    • top
    • center
    • bottom
    • length
    • %
    z-axis

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

    • length

    最后,给大家呢演示一个实例demo:

    原始图片为一个黑色正方形,我们希望它根据左上角的顶点进行旋转:

    图片:

    557b3908ddbfce57ac9cb2c9a2a5ce0.jpg

    源码:

    <!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>

    效果展示:

    375ffbfbdd3792daf5e2fd5cff4ef2a.jpg

    你自行复制代码吧。。。!!!

    推荐学习:《css视频教程

    以上就是css怎么实现以一个点为定点旋转的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:旋转 css
    上一篇:css怎么改单元格行高 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • css3怎么让一张图片旋转• 巧用CSS实现鼠标跟随 3D 旋转效果,让交互更加生动!• 让交互更加生动!巧用CSS实现鼠标跟随 3D 旋转效果
    1/1

    PHP中文网