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