Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.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中的For循环捕获200的倍数_Javascript_Jquery - Fatal编程技术网

javascript中的For循环捕获200的倍数

javascript中的For循环捕获200的倍数,javascript,jquery,Javascript,Jquery,我现在有这个代码,它检查导航左边的空白,并相应地向左滚动。但是,这种方法速度很慢,因此我想知道如何将其更改为for循环或类似的方法,以捕获200的每一个倍数,然后相应地设置导航动画。 这是我目前的代码,如果需要达到-5000 ect,您可以看出这不是很有效。 编辑 这些是我的功能,但它们不起作用 function goleft(){ var nav = $("#innernavigation"); var navmargin = parseInt(nav.css("mar

我现在有这个代码,它检查导航左边的空白,并相应地向左滚动。但是,这种方法速度很慢,因此我想知道如何将其更改为for循环或类似的方法,以捕获200的每一个倍数,然后相应地设置导航动画。
这是我目前的代码,如果需要达到-5000 ect,您可以看出这不是很有效。
编辑
这些是我的功能,但它们不起作用

    function goleft(){
    var nav = $("#innernavigation");
    var navmargin = parseInt(nav.css("margin-left"), 10);
    if (navmargin != 0)
    {
        //time!
        if (navmargin > -nav.width() && navmargin < -200)
        {   
            nav.animate({'marginLeft':'-' + ((Math.floor(navmargin / 200)-1) * 200) + 'px'});
        }
        if (navmargin > 0)
        {
            nav.css({'marginLeft':'0px'});
        }
    }
}
function goright(){
    var nav = $("#innernavigation");
    var navmargin = parseInt(nav.css("margin-left"), 10);
    if (navmargin != -nav.width())
    {
        //time!
        if (navmargin > 0 && navmargin < -nav.width())
        {   
            nav.animate({'marginLeft':'-' + ((Math.floor(navmargin / 200)-1) * 200) + 'px'});
        }
        if (navmargin < -nav.width())
        {
            nav.css({'marginLeft':'-' + nav.width()});
        }
    }
}
函数goleft(){
var nav=$(“#内部导航”);
var navmargin=parseInt(nav.css(“左边距”),10);
如果(navmargin!=0)
{
//时间!
如果(导航边距>-nav.width()&导航边距<-200)
{   
导航动画({'marginLeft':'-'+((数学地板(navmargin/200)-1)*200)+'px');
}
如果(导航边距>0)
{
css({'marginLeft':'0px'});
}
}
}
函数goright(){
var nav=$(“#内部导航”);
var navmargin=parseInt(nav.css(“左边距”),10);
如果(navmargin!=-nav.width())
{
//时间!
如果(navmargin>0&&navmargin<-nav.width())
{   
导航动画({'marginLeft':'-'+((数学地板(navmargin/200)-1)*200)+'px');
}
如果(导航边距<-导航宽度())
{
css({'marginLeft':'-'+nav.width()});
}
}
}

您可以在单个if语句中执行类似操作

if (navmargin > -5000 && navmargin < -200)
{
    nav.animate({'marginLeft': (-((Math.floor(navmargin / 200)-1) * 200) + 'px'});
}
if(navmargin>-5000和&navmargin<-200)
{
导航动画({'marginLeft':(((数学地板(navmargin/200)-1)*200)+'px');
}
只是一个快速猜测(尚未测试):

if(导航余量-5000){
动画({'marginLeft':((navmargin%200-1)*-200)+'px'});
}

除非没有
if
。这只做
-200
,而忽略了其他一切。谢谢詹姆斯,如果我们检查一下上限,比如5000,那会更好。尽管我有预感,-5000只是一个例子,不需要上限。@Adil,我如何更改此代码使其正确运行除了左边?顺便说一句-5000是一个例子,我想我的意思是-nav.width()(如果nav.width是5000,那么它就等于-5000)。如果你能帮我用一个语句向右导航,我会接受的。谢谢你,你可能需要反转条件,比如如果(navmargin<5000&&navmargin>200)nav.animate({'marginLeft':(+(Math.floor))(navmargin/200)-1)*200)+“px'});
nav.animate({'marginLeft': (Math.floor(Math.abs(navmargin) / 200) * -200) + 'px'})
if (navmargin<-200 && navmargin>-5000) {
    nav.animate({'marginLeft':((navmargin%200-1)*-200)+'px'});
}