不确定如何分步运行Javascript动画。现在,我已经将其实现为同时运行整个动画

不确定如何分步运行Javascript动画。现在,我已经将其实现为同时运行整个动画,javascript,jquery,css,animation,Javascript,Jquery,Css,Animation,我正在制作一个动画来展示模式匹配算法是如何工作的。现在我有完整的动画运行从开始到结束时,排序按钮被按下 我试图实现一个“前进步”按钮(还有一个“后退步”按钮),当按下该按钮时,将在第一个位置比较图案,然后在第二个位置再次按下时比较图案。如果可能的话,我不确定如何实现 function kmp(p,t){ var k=0, j=0, result; var fail=[]; var next=[]; var shifts = 0, comparisons = 0; var boxWidth = $

我正在制作一个动画来展示模式匹配算法是如何工作的。现在我有完整的动画运行从开始到结束时,排序按钮被按下

我试图实现一个“前进步”按钮(还有一个“后退步”按钮),当按下该按钮时,将在第一个位置比较图案,然后在第二个位置再次按下时比较图案。如果可能的话,我不确定如何实现

function kmp(p,t){
var k=0, j=0, result;
var fail=[];
var next=[];
var shifts = 0, comparisons = 0;
var boxWidth = $('#text_array .panel').outerWidth(true);
var places;
var previousMove = 0;
var totalMoves = 0;

kmpSetup(p, fail, next);

    xx = setInterval(function () {
        if(t[j] == p[k]) {
            turnGreen('#p', k);
            for(n=0; n<k; n++) {
                turnGreen('#p', n);
            }
            turnGreenWhite('#t', j);
            k = k+1;
            j = j+1;
        } else if(k==0) {
            j++;
        } else {
            turnRed('#p', k);
            turnRed('#t', j);
            for (var m = 0; m < p.length; m++) {
                turnWhite('#p', m);
            }
            turnWhite('#t', j);

            var position = k;
            k = next[k];

            //calculating how many places to shift the pattern
            // depending on the value in the table
            if (k == -1) {
                places = position + 1;
                totalMoves+=places;
                animatePattern(boxWidth, totalMoves, result);
                k = k+1;
            } else {
                places = position - k;
                totalMoves+=places;
                animatePattern(boxWidth, totalMoves, result);
            }

            if(j>=t.length && k>=p.length) {
                clearInterval(xx);
            }
        }
    }, 1000);

if(k>=p.length){
    result='match found';//match found
} else {
    result='match not found';//no match found
}
return result;
}
函数kmp(p,t){
var k=0,j=0,结果;
var fail=[];
var-next=[];
var移位=0,比较=0;
var boxWidth=$('#text_array.panel').outerWidth(true);
变量位置;
var-previousMove=0;
var=0;
kmpSetup(p,失败,下一步);
xx=设置间隔(函数(){
如果(t[j]==p[k]){
变绿('#p',k);
对于(n=0;n=t.length&&k>=p.length){
净距(xx);
}
}
}, 1000);
如果(k>=p.length){
结果=“找到匹配项”;//找到匹配项
}否则{
result='match not found';//未找到匹配项
}
返回结果;
}

这与算法有很大关系,而不是javascript和css动画。好吧,在空闲时间深入研究这个问题是相当复杂的:)他们有CSS动画来制作这类东西,你知道…@gyre。如果我使用Css动画制作动画,我想做的会更容易吗?这与算法有很大关系,而不是javascript和Css动画。好吧,在空闲时间深入研究这个问题是相当复杂的:)他们有CSS动画来制作这类东西,你知道…@gyre。如果我使用Css动画制作动画,我想做的事情会更容易吗?