Javascript 使用jQuery滚动浏览锚点

Javascript 使用jQuery滚动浏览锚点,javascript,jquery,Javascript,Jquery,我正在尝试使用jquery按顺序(一个接一个)在锚中移动一个向下箭头。到目前为止,我只能设法立即移动它们 var targets=new Array(); $(“.jump”).each(函数(){ targets.push($(this.attr('id')); }); $(“#单击我”)。单击(函数(){ 对于(变量i=0;i=目标[i]){ $(“html,body”).animate({ scrollTop:$(“#”+目标[i]).offset().top }, 1000); } }

我正在尝试使用jquery按顺序(一个接一个)在锚中移动一个向下箭头。到目前为止,我只能设法立即移动它们

var targets=new Array();
$(“.jump”).each(函数(){
targets.push($(this.attr('id'));
});
$(“#单击我”)。单击(函数(){
对于(变量i=0;i=目标[i]){
$(“html,body”).animate({
scrollTop:$(“#”+目标[i]).offset().top
}, 1000);
}
}
});
p{
填充顶部:100px;
}

点击这里
我爱你,我爱你

我爱你,我爱你


Lorem ipsum dolor sit amet…

这就是你要找的吗

var目标=$(“.jump”);
$(“#单击我”)。单击(函数(){
后藤(0);
函数goTo(thisElement){
如果(thisElement要“一个接一个”循环定位点,您不需要for循环,而是要保存一个索引器,在每次单击后递增该索引器(设置为0将再次重置第一个定位点),并检查数组中是否还有其他项

var currentTarget=0;
var targets=新数组();
$(“.jump”)。每个(函数(){
targets.push($(this.attr('id'));
});
$(“#单击我”)。单击(函数(){
if(当前目标<目标长度){
$(“html,body”).animate({scrollTop:$('#'+目标[currentTarget]).offset().top},1000);
currentTarget++;
//取消对循环的注释
/* 
如果(currentTarget>=targets.length)
currentTarget=0;
*/
}          
});

点击这里
Lorem ipsum dolor sit amet

Lorem ipsum dolor sit amet


Lorem ipsum door sit amet…

我假设您希望每次单击移动一个元素

您的循环几乎会立即运行。因此,它将遍历所有元素并为所有元素应用动画。请改用计数器。
var$jump=$(“.jump”);
var jumpIndex=0
$(“#单击我”)。单击(函数(){
if(jumpIndex<$jump.length){
$(“html,body”).stop(true,true)。设置动画({
scrollTop:$jump.eq(jumpIndex.offset().top
}, 1000);
跳跃指数++
};
});
.jump{
边缘顶部:300px;
显示:块
}
#单击我{位置:固定;顶部:0;左侧:50%}
正文{填充底部:500px}

点击这里
内容1

内容2


内容3

(请忽略并原谅临时关闭。我现在睁开了双眼。)@Cromwell这对你有帮助吗?