如果您在當前動畫完成後未移除動畫類,則動畫將無法再次運行。
但是如何在動畫結束後刪除動畫屬性?
這裏有一個片段:
var support = {};
support.animation = (function() {
var animationEnd = (function() {
var element = document.body || document.documentElement,
animEndEventNames = {
WebkitAnimation : 'webkitAnimationEnd',
MozAnimation : 'animationend',
OAnimation : 'oAnimationEnd oanimationend',
animation : 'animationend'
}, name;
for (name in animEndEventNames) {
if (element.style[name] !== undefined) return animEndEventNames[name];
}
}());
return animationEnd ? { end: animationEnd } : false;
})();
function animate(elem, cls, callback) {
var $elem = $(elem);
var onEndCallbackFn = function(ev) {
if (support.animation) {
$elem.removeClass(cls);
this.removeEventListener(support.animation.end, onEndCallbackFn);
}
if (callback && typeof callback === 'function') { callback.call(this, ev); }
};
if (support.animation) {
$elem.addClass(cls);
$elem[0].addEventListener(support.animation.end, onEndCallbackFn);
} else {
onEndCallbackFn();
}
}
用法很簡單,只需要調用動畫功能,如:
animate($('.selector'), 'classWithAnimation', callbackFn);
在你的情況下,你說你正在使用animate.css庫:
$(".container>parent").click(function() {
animate($('.element'), 'animated fadeInUp', function() {
console.log('animation complete');
);
});
現場示例:jsFiddle
安置自己的HTML,或作出的jsfiddle – 2015-04-04 10:00:04
Propably因爲你的動畫完成 – covfefe 2015-04-04 10:01:09
嘿嘿,謝謝,我想提出一個的jsfiddle後沒有刪除動畫屬性。但是如何在動畫結束後刪除動畫屬性? – Andrew 2015-04-04 10:03:09