css - 防止 css 动画在召回时从极端起点和终点重新启动

标签 css animation

是否可以制作一个在调用时不会从起点和终点快速重新开始的动画?

例如:
我有一个动画,它从 top:0px 垂直移动一个 div 到 top:100px (向下),
另一个动画将此 div 从 top:100px 垂直移动到 top:0px(向上),
每个动画由不同的按钮 A 和 B 控制。

如果我重复按这些按钮,div 实际上在中间路线
它不会从这个实际的中点重新开始,
但会快速返回到极限起点或终点!

参见:http://jsfiddle.net/4FB6k/

有没有办法让 div 从它到达的实际位置重新开始,当我想起其他动画时?

最佳答案

正如 bjb568 评论的那样,答案是使用过渡而不是动画

CSS

#a {
    width: 100px;
    height: 100px;
    position: absolute;
    background-color: green;
    transition: top 2s linear;
    top: 0px;
}

jQuery

$(document).ready(function(){
    $("#b").mousedown(function(){
        $("#a").css({"top":"200px"});
     });
    $("#b").mouseup(function(){
        $("#a").css({"top":"0px"});
     });
});

demo

关于css - 防止 css 动画在召回时从极端起点和终点重新启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22852017/

相关文章:

Angular 2 惊人的动画

python - 动画轮廓图

html - 如何在无序列表上设置点并将它们更改为悬停时的图像

javascript - Fader 不同于 Div

html - 如何在 "cursor/rectangle"文本之后在 CSS 中制作闪烁的 "normal"?

java - Android动画,一个简单的线性插值器

ios - 在另一个 View 上设置动画后,动画 View 不会接收触摸事件

html - 如何将 block 切换到 CSS 网格的底部?

html - 如何在不将整个容器一起向下移动的情况下向下移动此导航栏

javascript - 单击输入后删除输入错误消息