答案:通过CSS的transform与transition属性,设置.card的transform-origin为中心,并在.card:hover时应用rotate(15deg)实现平滑旋转,配合过渡时间与缓动函数使效果更自然。

想让卡片在鼠标悬停时平滑旋转,可以用 transform 配合 transition 实现。关键在于设置初始状态、触发条件和过渡效果,让 rotate 变化更自然。
先写一个简单的卡片元素,比如用 div 包裹内容:
<div class="card"> <img src="image.jpg" alt="示例图片"> <h3>卡片标题</h3> <p>这里是卡片描述文字</p> </div>
为卡片添加基本样式,并定义 transform-origin 控制旋转中心点:
.card {
width: 200px;
height: 300px;
border: 1px solid #ccc;
border-radius: 10px;
overflow: hidden;
text-align: center;
background: white;
/* 设置变换原点为卡片中心 */
transform-origin: center center;
/* 添加过渡动画 */
transition: transform 0.6s ease;
}
注意: transform-origin 默认是中心(center),也可设为 top left 或 50% 50% 等值。
立即学习“前端免费学习笔记(深入)”;
当鼠标移到卡片上时,让它绕 Z 轴旋转一定角度:
.card:hover {
transform: rotate(15deg);
}
rotate(15deg) 表示顺时针旋转 15 度。你也可以尝试 rotate(-15deg) 逆时针转。
如果想做更炫的 3D 翻转,可以结合 perspective 和 rotateX/rotateY:
.card-container {
perspective: 1000px;
}
.card {
transform-style: preserve-3d;
transition: transform 0.8s cubic-bezier(0.2, 0.8, 0.7, 0.3);
}
.card:hover {
transform: rotateY(180deg);
}
这样适合做翻面卡片(正面/背面切换),需要额外设置 backface-visibility 和前后两个面。
基本上就这些。核心就是 transition 监听 transform 的变化,加上 :hover 触发 rotate。不复杂但容易忽略 transform-origin 和过渡时间的协调。试试调不同的角度和缓动函数,找到最适合你设计的效果。
以上就是如何在CSS中使用过渡制作卡片旋转动画_transform rotate transition实现的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号