jquery – 使用webkitTransitionEnd编码

前端之家收集整理的这篇文章主要介绍了jquery – 使用webkitTransitionEnd编码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个使用事件webkitTransitionEnd的Web应用程序(用于iPad).

我希望在第二次转换结束时回调函数.有两个转换的原因是因为一个具有-webkit-transition-delay属性,因此它们的两个动画不会同时结束.由于这是一系列动画,我想仅在第二次转换完成时调用函数.

我当前(愚蠢的)解决方法是将事件绑定到事件中,在jQuery中看起来像这样.

$(this).bind('webkitTransitionEnd',function(){
   $(this).bind('webkitTransitionEnd',function(){
      \*some code here*\
      $(this).unbind();
   });
   $(this).unbind();
});

这有效,但是当有更多动画时它不可用.假设我想在50个动画之后回调一个函数,该动画在不同的时间结束.

解决方法

这没有经过测试,但应该给你一个好主意.
function waitOnTransition(elem,endIndex,callback){
    var transitionIndex = 0;
    $(elem).on('webkitTransitionEnd',function(){
        if(transitionIndex == endIndex){
            callback();
        }else{
            transitionIndex++;
        }
    });
}
waitOnTransition('#elemID',3,function(){
   //do stuff
});

你也可以用咖喱做

function makeTransitionEnd(endIndex){
    var endIndex = endIndex;
    var out = function(elem,callback){
        var transitionIndex = 0;
        $(elem).on('webkitTransitionEnd',function(){
            if(transitionIndex == endIndex){
                callback();
            }else{
                transitionIndex++;
            }
        });
    });
    return out;
}

//make curry
var waitForThreeEnds = makeTransitionEnd(3);
waitForThreeEnds('#elemID',function(){
    //do stuff
});

猜你在找的jQuery相关文章