如何使用jQuery确定元素的CSS动画何时结束,然后将新样式应用于该元素?以下是我的非功能性代码。
$("#icon").jQuery.Event("webkitAnimationEnd", function(event){
('#icon').css('opacity', '1');
});
答案 0 :(得分:14)
我认为你真正想要的是.bind()方法:
$("#icon").addClass('thisClassWillApplyMyCSSAnimation').bind('animationend webkitAnimationEnd MSAnimationEnd oAnimationEnd', function(e){
//DO WHATEV
$('#icon').css('opacity', '1');
});
答案 1 :(得分:3)
您可以使用one()
$("#icon").one('animationend webkitAnimationEnd MSAnimationEnd oAnimationEnd', function(e) {
//Your css
$('#icon').css('opacity', '1');
});
答案 2 :(得分:0)
如果我理解你的意思,你想要动画css属性并定义一个回调,以便在动画结束时执行。您应该使用.animate()函数。
例如:
$('#clickme').click(function() {
$('#book').animate({
opacity: 0.25,
}, 5000, function() {
// Animation complete.
});
});
以下脚本会将不透明度从其当前值设置为0.25。这将花费5000毫秒。动画完成后将调用最后一个函数。
这里有关于它的JQuery页面:http://api.jquery.com/animate/
JQuery很棒:))
答案 3 :(得分:-1)
大多数(如果不是全部)动画定义了活动完成后的回调。
例如,假设你想要#DyDiv对象的slideDown(),一旦完成,改变#icon的不透明度:
$("#MyDiv").slideDown("[speed]", function()
{
$("#icon").css("opacity", "1");
});
// [speed] = "slow", "normal", "fast" or a integer value defining milliseconds
我没有测试过,但它应该有用......