【发布时间】:2015-01-08 02:36:17
【问题描述】:
我正在使用 CSS3 步骤转换来动画精灵从一种状态到另一种状态。
当我开始一个动画时,它一次显示一帧,并具有很好的过渡效果(单击example 中的“显示/隐藏”链接)。但是,当第一个过渡仍在运行时触发第二个过渡时,帧位置会丢失,并且看起来它滚动到另一侧而不是保持逐帧动画(单击 example 中的“触发错误” )。
.tree {
width: 26px; /* one frame */
height: 31px; /* frame height */
background-image: url("http://rolandschuetz.at/docs/tree-animated.png");
background-repeat: no-repeat;
background-position: -234px 0; /* last frame */
transition: background-position .8s steps(10); /* this triggers the CSS3 step transition */
}
.tree-hidden {
background-position: 26px 0; /* clear, before first frame */
}
有没有办法强制动画正常工作,即使它中止了旧动画?
PS:请不要尝试通过仅用于演示目的的触发错误按钮来“修复”。真正的问题是由快速的用户交互触发的,应该立即得到反馈。
【问题讨论】:
-
您是否按下了“触发错误”链接?如果是这样,在哪个浏览器中?
-
是的,但是因为它是你的动画,所以你必须解释那里有什么丑陋的地方,这样我才能找到丑陋的部分
-
当我按下树大小时,会变小并从左到右滚动
-
是的,它不应该滚动。这应该是一个逐帧增长的动画,就像您按下显示/隐藏链接时所看到的那样。
-
我已经弄清楚这里发生了什么,我会画一个图表并在下面给出答案。
标签: css