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

如何用纯CSS实现竖线从上到下动画?已实现但transform属性受影响

解决纯CSS竖线从上到下动画的问题

你的代码里transform: rotate(90deg)并没有被动画影响,但默认的transform-origin(变换原点)是元素中心,导致旋转后的竖线在动画width时会从中心向上下两边扩展,而非你想要的从上到下延伸。以下是两种可行的解决方案:

方案1:调整变换原点,基于旋转实现

修改元素的transform-origin为左上角,让旋转后的竖线从顶端开始向下延伸:

.line {
  width: 5rem;
  height: 1px;
  background-color: black;
  position: absolute;
  top: 3rem;
  left: 3rem;
  transform: rotate(90deg);
  transform-origin: 0 0; /* 将变换原点设为元素左上角 */
  animation: stand linear 1s forwards; /* forwards 保持动画结束后的状态 */
}
@keyframes stand {
  0% {width: 0;}
  100% {width: 5rem;}
}

方案2:直接使用高度动画(更直观)

无需旋转,直接创建竖线并动画其高度,逻辑更清晰:

.line {
  width: 1px;
  height: 5rem;
  background-color: black;
  position: absolute;
  top: 3rem;
  left: 3rem;
  animation: stand linear 1s forwards;
  transform-origin: top center; /* 确保动画从顶端开始 */
}
@keyframes stand {
  0% {height: 0;}
  100% {height: 5rem;}
}

HTML部分保持不变:

<div class="line"></div>

内容的提问来源于stack exchange,提问作者Sam Seith

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 11:31:02