fel*_*mon 7 jquery events mobile-safari ios
我正在编写一个使用该事件的网络应用程序(用于iPad)webkitTransitionEnd.
我希望在第二次转换结束时回调函数.有两个转换的原因是因为一个具有-webkit-transition-delay属性,因此它们的两个动画不会同时结束.由于这是一系列动画,我想仅在第二次转换完成时调用该函数.
我当前(愚蠢的)解决方法是将事件绑定到事件中,在jQuery中看起来像这样.
$(this).bind('webkitTransitionEnd', function(){
$(this).bind('webkitTransitionEnd', function(){
\*some code here*\
$(this).unbind();
});
$(this).unbind();
});
Run Code Online (Sandbox Code Playgroud)
这有效,但是当有更多动画时它不可用.假设我想在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
});
Run Code Online (Sandbox Code Playgroud)
你也可以用咖喱来做
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
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10488 次 |
| 最近记录: |