CSS3 3D旋转(transform),平移,放大/缩小,倾斜

本文介绍使用CSS实现图片的3D变换效果,包括不同类型的变换如旋转、缩放、倾斜和平移等,并展示了如何设置变换中心及实现过渡动画。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参见:https://blog.youkuaiyun.com/houyanhua1/article/details/79659096


demo.html:

<!DOCTYPE html>            
<html lang="en">            
<head>            
    <meta charset="UTF-8">            
    <title>Document</title>            
    <style>            
            
        .box {            
            width: 200px;            
            height: 200px;            
            margin: 200px auto;          
            
            /* 透视:近大远小的3D效果(只是模拟出的效果,本质上还是2D) */          
            perspective: 500px;   /* 透视 眼睛距离屏幕的距离 */ 
            transform-style: preserve-3d;   /* 让盒子里的子盒子保持3D效果(真3D)(默认flat:平面上的扁平化) */     
        }          
          
        img {          
            transition: transform 2s;  /* 过渡(动画) */        
            transform-origin: bottom;   /* 旋转中心 */      
            backface-visibility: hidden;     /* 背面隐藏。3D旋转时,转到背面时隐藏 */     
        }          
          
        .box img:hover {          
            /* 2D旋转 */              
            transform: rotate(45deg);   /* 2D旋转 */              
            transform: translate(500px,100px) rotate(45deg);   /* translate(500px,100px)表示相对于原来位置的偏移 (相当于relative 还霸占着原来的位置) */              
            transform-origin: center bottom;  /* 旋转中心 */     
  
            /* 放大/缩小 */              
            transform: scale(0.5);  
            transform: scaleX(0.5);   /* X轴方向放大/缩小 */  
            transform: scaleY(0.5);  
            transform: scaleZ(0.5);  
            transform-origin: left;   /* 放大/缩小的原点 */    
  
            /* 倾斜 */              
            transform: skew(10deg,10deg);    /* skew(x-angle,y-angle) */  
            transform: skewX(10deg);   /* X轴方向倾斜 */  
            transform: skewY(10deg);  
            transform-origin: left;   /* 倾斜的原点 */   
          
            /* 平移 */          
            transform: translateX(200px);  /* X轴平移 */          
            transform: translateY(200px);  /* Y轴平移 */          
            transform: translateZ(200px);  /* Z轴平移,设置perspective后才有效果 */          
          
            /* 3D旋转 */          
            transform:rotateX(360deg);  /* 3D旋转,绕X轴旋转。旋转角度正方向按左手坐标系 */          
            transform:rotateY(360deg);  /*  绕Y轴旋转 */          
            transform:rotateX(360deg);  /*  绕Z轴旋转,和2D效果相似,设置perspective没有效果 */        
    
            backface-visibility: hidden;  /* 背面隐藏。3D旋转时,转到背面时隐藏 */     
        }          
          
    </style>            
</head>            
<body>            
    <div class="box">          
        <img src="22.jpg" />          
    </div>            
</body>            
</html>   




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值