如果您像我一样发现了这个问题,您可能正在寻找与 js focus() 相结合的 CSS 相关问题,您可能会认为自己运气不好。好吧,再想一想——好消息是有一种方法可以在 CSS 动画或过渡结束时进行回调,然后触发你的事件。
您可以使用 jQuery 的one
方法并webkitTransitionEnd
otransitionend
oTransitionEnd
msTransitionEnd
transitionend
用于过渡或webkitAnimationEnd
oanimationend
msAnimationEnd
animationend
动画。
一个例子:
JS:
var myButton = $('#button'),
myBox = $('#box');
myButton.click(function () {
myBox.addClass('change-size');
myBox.one('webkitAnimationEnd oanimationend msAnimationEnd animationend',
function(e) {
// code to execute after animation ends
myBox.removeClass('change-size');
});
});
CSS:
.box {
width: 100px;
height: 100px;
background: hotpink;
}
@keyframes growBox {
to {
width: 300px;
height: 200px;
}
}
.change-size {
animation: growBox 3s linear 0s 1 normal;
}
解决方案不是我的,我只是在浪费了几个小时后才找到它,如果你先找到这个问题,我会发布它。
来源:http ://blog.teamtreehouse.com/using-jquery-to-detect-when-css3-animations-and-transitions-end