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

CSS过渡时长不均问题:如何实现小球全程匀速移动?

实现小球匀速移动的解决方案

你遇到的问题是因为CSS transition默认的时间函数是ease——这个函数的曲线特性就是先加速、后减速,所以小球移动会有快慢变化。要让整个移动过程保持匀速,只需要把transition的时间函数设置为linear即可。

具体做法有两种:

  • 在CSS中预先定义:
.ball {
  /* 0.5s为移动时长,可根据需求自行调整 */
  transition: top 0.5s linear, left 0.5s linear;
}
  • 或者在JavaScript动态设置样式时直接指定:
const ball = document.querySelector('.ball');
// 先设置transition的时间函数为linear
ball.style.transition = 'top 0.5s linear, left 0.5s linear';
// 再设置随机目标位置
ball.style.top = `${Math.random() * window.innerHeight}px`;
ball.style.left = `${Math.random() * window.innerWidth}px`;

linear时间函数的特性就是让动画在整个持续时间内保持恒定的速率,完全符合你需要的匀速移动效果。

内容的提问来源于stack exchange,提问作者Luca Siegel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 21:47:02