Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 中断是';我的switch语句不工作_Javascript_Switch Statement_Case_Swipe - Fatal编程技术网

Javascript 中断是';我的switch语句不工作

Javascript 中断是';我的switch语句不工作,javascript,switch-statement,case,swipe,Javascript,Switch Statement,Case,Swipe,这是我的密码 if (xPrev < touch.pageY) { $("#debug").text("down :: " + nav); xPrev = touch.pageY; switch(nav){ case 1: $("#container").animate({top:0}); nav --; break; case 2: $("#container").animate({t

这是我的密码

if (xPrev < touch.pageY) {
    $("#debug").text("down :: " + nav);
    xPrev = touch.pageY;
    switch(nav){
    case 1:
        $("#container").animate({top:0});
        nav --;
        break;
    case 2:
        $("#container").animate({top:-alto});
        nav --;
        break;
    }

} else if (xPrev > touch.pageY) {
    $("#debug").text("up :: " + nav);
    xPrev = touch.pageY;
    switch(nav){
    case 0:
        $("#container").animate({top:-alto});
        nav ++;
        break;
    case 1:
        $("#container").animate({top:-(alto*2)});
        nav ++;
        break;
    }
};

我认为问题在于
nav
不同值的映射与设置动画的位置不匹配。为了清晰起见,我将使
nav
也像
y
轴一样,从顶部的0开始,随着对象向下移动而增加。这样,您就可以清楚地映射“模型”(变量“nav”)和“视图”(位置容器)。我不完全确定你说的是三种还是四种不同的立场。以下代码将在三个不同位置之间设置对象的动画

var up = xPrev < touch.pageY;
if( nav<2 && !up ) nav++;
if( nav>0 && up ) nav--;
xPrev = touch.pageY;
$("#container").animate({top:(nav-1)*alto});
var up=xPrev
break
始终有效。您的代码中有一些逻辑错误,但很难从您的描述中知道是什么。当
nav==0
时,第一个
开关将不会做任何事情。@Barmar xPrev最初是0,因此任何touch.PageY都将大于0,并且它将落入else if中。@Zack您可以将其向后设置。如果
xPrev==0
touch.pageY==10
xPrev
将为真,因此将执行第一个
If
。@Barmar yep。哎哟,我正在尝试在三个位置之间设置动画如果你计算开始位置,ifs将确定你是向上还是向下滑动,以及在哪个方向设置#containerRight的动画。这就是我理解你想做什么的方式。上面的代码应该做到这一点:在三个位置之间设置动画。
var up = xPrev < touch.pageY;
if( nav<2 && !up ) nav++;
if( nav>0 && up ) nav--;
xPrev = touch.pageY;
$("#container").animate({top:(nav-1)*alto});