CSS 动画只工作一次
CSS animation only working once
我使用以下JavaScript代码启动CSS动画(element
是一个div
,name
是现有规则的名称,destination
是元素应该移动到的位置)。第一次调用此函数时,它会按预期工作(div
会轻柔地移动到其最终目标)。第二次,它只是跳转到目的地(因为我显式设置了left
和top
),但没有发生任何移动。如果我在发生名称分配的行中设置断点(webkitAnimationName
),则动画将像第一次一样执行。我需要延迟吗?
function flyTo(element, name, destination) {
var rule = findKeyframesRule(name);
if (rule != null) {
element.style.webkitAnimationName = "none";
// remove the existing 0% and 100% rules
rule.deleteRule("from");
rule.deleteRule("to");
// create new 0% and 100% rules
rule.insertRule("from {top: " + element.style.top + "; left: " + element.style.left + ";}");
rule.insertRule("to {top: " + px(destination.y) + "; left: " + px(destination.x) + ";}");
// assign the animation to our element (which will cause the animation to run)
element.style.left = px(destination.x);
element.style.top = px(destination.y);
element.style.webkitAnimationDuration = "1s";
element.style.webkitAnimationTimingFunction = "linear";
element.style.webkitAnimationName = name;
} else {
element.style.left = px(destination.x);
element.style.top = px(destination.y);
}
}
我正在使用谷歌浏览器
我不确定您的代码中的错误在哪里。但我试着给你另一个(在我看来更好的解决方案)。我的滑动菜单代码示例:
#tag-menu {
top: 0px;
width: 270px;
height: 100%;
left: -370px;
background: #2F535C;
z-index: 9;
box-shadow: 5px 5px 10px 0px rgba(84,84,84,0.25);
position: fixed;
display: block;
transition: left 0.25s ease-out;
-webkit-transition: all 0.2s ease-out;
-moz-transition: all 0.2s ease-out;
-o-transition: all 0.2s ease-out;
-webkit-transform: translateX(-317px);
-moz-transform: translateX(-317px);
-o-transform: translateX(-317px);
-ms-transform: translateX(-317px);
}
#tag-menu.active{
left:0;
-webkit-transform: translateX(0px);
-moz-transform: translateX(0px);
-o-transform: translateX(0px);
-ms-transform: translateX(0px);
transform:translateX(0px);
transition:all 0.2s ease-in;
-webkit-transition: all 0.2s ease-in;
-moz-transition: all 0.2s ease-in;
-o-transition: all 0.2s ease-in;
}
然后你只需添加和删除"活动"类。菜单将滑动。希望我能帮助你。干杯
- jQuery:试图让动画每3秒发生一次,但没有成功
- jQuery+Animate.css动画只工作一次,动画不会重置
- HTML画布-使动画一次发生一个,而不是同时发生多个
- 为jquery设置动画,一次设置一个对象
- 菜单在每单击一次时切换不同的动画
- jQuery - 在一个会话中仅运行一次动画
- 如何一次为多个事物设置动画
- CSS 动画只工作一次
- 如何阻止 CSS3 动画在播放一次后运行并调用新动画
- 如何让动画在视口中启动一次
- 一次对一个进度条进行动画处理
- jQuery 动画运行一次
- 动画 GIF 背景仅显示一次
- 为什么单击时的关键帧动画只触发一次
- 每次单击一次迭代两个数组并制作动画
- 在滚动时制作一次动画
- JavaScript动画,图像动画只动画一次
- 每3秒重复一次动画
- 在单击按钮时使用同位素对数据进行排序,目前只运行一次动画
- ScrollMagic Tween:向前只播放一次动画