首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使CSS动画/过渡播放以固定的速度,而不是固定的持续时间?

问如何使CSS动画/过渡播放以固定的速度,而不是固定的持续时间?
EN

Stack Overflow用户
提问于 2016-09-26 23:30:57
回答 1查看 1.5K关注 0票数 1

我有一个CSS动画,使元素在直线上移动一个未定义的距离。动画有固定的持续时间,据我所知,所以动画运行的时间总是相同的,不管元素移动到多远。

如何使动画不具有固定的持续时间,而具有固定的速度?我想要的东西是"X像素每秒移动“而不是”整个动画的X秒“。我的动画将在几个移动不同距离的元素上使用,我不想为每个元素制作单独的动画。

这只能用CSS来实现吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-26 23:43:16

​

代码语言:javascript
复制
function move(id,x) {
  document.getElementById(id).style.transitionDuration = (x/200) + 's';
  document.getElementById(id).style.marginLeft = x + 'px';
}
代码语言:javascript
复制
#a,#b {
  width: 50px;
  height: 50px;
  margin-left: 10px;
  transition-timing-function: linear;
}

#a {
  background-color: red;
}

#b {
  background-color: blue;
}
代码语言:javascript
复制
<div id='a' onclick="move('a',400)"></div>
<div id='b' onclick="move('b',250)"></div>
<button onclick="move('a',400);move('b',250)">Or click here!</button>

​

transition-timing-function: linear允许您以线性方式进行转换,而不是在末端加速和减速。此外,我无法找到一个纯CSS解决方案,但一行JavaScript可以创建所需的效果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39713882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档