You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅为transform: translateX()应用CSS过渡效果?

实现仅为translateX添加过渡、rotateZ瞬间生效的方案

在Chrome浏览器中可以通过CSS独立变换属性实现需求,该特性已被Chrome原生支持,无需前缀。

核心思路是放弃使用复合的transform属性,改用单独的translate和rotate属性分别控制位移与旋转,然后仅为translate设置过渡效果,rotate属性不添加过渡就会瞬间生效。

修改后的代码如下:

CSS代码

body{
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}
div {
  height: 50px;
  width: 200px;
  background: rgb(255, 99, 99);
  /* 初始状态:位移为0,旋转角度为0 */
  translate: 0;
  rotate: 0deg;
  /* 仅为translate属性设置过渡 */
  transition: translate 2s;
}
div:hover{
  /* hover时分别设置目标位移和旋转角度 */
  translate: 100px 0;
  rotate: 45deg;
}

HTML代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div>Hover on me.</div>
</body>
</html>

测试效果:鼠标悬停时,元素会平滑过渡到X轴位移100px的位置,同时旋转45度会瞬间完成;鼠标移出时,位移会平滑恢复初始状态,旋转也会瞬间归零。

内容的提问来源于stack exchange,提问作者Mohiul Islam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:15:31