jquery – 使用webkitTransitionEnd编码

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

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

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

  1. $(this).bind('webkitTransitionEnd',function(){
  2. $(this).bind('webkitTransitionEnd',function(){
  3. \*some code here*\
  4. $(this).unbind();
  5. });
  6. $(this).unbind();
  7. });

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

解决方法

这没有经过测试,但应该给你一个好主意.
  1. function waitOnTransition(elem,endIndex,callback){
  2. var transitionIndex = 0;
  3. $(elem).on('webkitTransitionEnd',function(){
  4. if(transitionIndex == endIndex){
  5. callback();
  6. }else{
  7. transitionIndex++;
  8. }
  9. });
  10. }
  11. waitOnTransition('#elemID',3,function(){
  12. //do stuff
  13. });

你也可以用咖喱做

  1. function makeTransitionEnd(endIndex){
  2. var endIndex = endIndex;
  3. var out = function(elem,callback){
  4. var transitionIndex = 0;
  5. $(elem).on('webkitTransitionEnd',function(){
  6. if(transitionIndex == endIndex){
  7. callback();
  8. }else{
  9. transitionIndex++;
  10. }
  11. });
  12. });
  13. return out;
  14. }
  15.  
  16. //make curry
  17. var waitForThreeEnds = makeTransitionEnd(3);
  18. waitForThreeEnds('#elemID',function(){
  19. //do stuff
  20. });

猜你在找的jQuery相关文章