我有css代码:
body.start{-webkit-animation:srcb ease-in .4s 1;}
进入网站时只播放一次
但问题是完成动画
我网站上的按钮不起作用
如何在完成动画后删除body类“start”
播放动画后或删除课程延迟x秒?
答案 0 :(得分:29)
您可以绑定到transitionend事件(实际上是所有这些事件):
$("body").on(
"transitionend MSTransitionEnd webkitTransitionEnd oTransitionEnd",
function() {
$(this).removeClass("start");
}
);
如果要实现延迟,可以queue()删除类操作:
$("body").on(
"transitionend MSTransitionEnd webkitTransitionEnd oTransitionEnd",
function() {
$(this).delay(1000).queue(function() { // Wait for 1 second.
$(this).removeClass("start").dequeue();
});
}
);
答案 1 :(得分:14)
尝试
webkitAnimationEnd oanimationend msAnimationEnd animationend
而不是
transitionend MSTransitionEnd webkitTransitionEnd oTransitionEnd
这对我有用。
答案 2 :(得分:2)
或许是另一种方式?
$(window).load(function(){
setTimeout(function(){
$('body.start').removeClass('start')
}, 4000);
});
答案 3 :(得分:1)
以下是代码:
var div = document.querySelector('div');
function callback() {
div.classList.remove('start'); // or modify div.className
}
div.addEventListener("webkitAnimationEnd", callback, false);
在jsbin上查看live example。
请注意,您的动画和我的解决方案仅适用于基于webkit的浏览器。在生产环境中,您应该考虑其他浏览器和必须提供无前缀的解决方案。
答案 4 :(得分:0)
对我有用的是始终在事件侦听器的开头删除动画类,在它们之间运行一些小代码,然后再次添加动画类,然后它起作用了。现在它将始终触发动画。就我而言,如果密码错误,我希望触发摆动动画。不确定您的推理。我希望删除动画,以便动画总是能够再次触发,即使他们反复点击提交也没错。
Already up to date
答案 5 :(得分:-1)
$("#mydiv").removeClass("start",
function() {
alert("do something");
});