Javascript 在jquery中上下滚动到元素

Javascript 在jquery中上下滚动到元素,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我想滚动到一个元素作为whatsapp搜索 当用户单击“搜索”(此处为底部)时,应滚动到最后一个元素 ie;id为的元素chat-7。 当点击up按钮时应滚动至chat-6,然后滚动至chat-5。依此类推 如果单击向下按钮,如果不是最后一项,则应向下滚动 功能滚动条(id){ console.log(id); $(“.container”).animate( { scrollTop:$(“#”+id).offset().top }, “快” ); }在身体上而不是在.container上执

我想滚动到一个元素作为whatsapp搜索

当用户单击“搜索”(此处为底部)时,应滚动到最后一个元素

ie;id为的元素
chat-7
。 当点击
up按钮时
应滚动至
chat-6
,然后滚动至
chat-5
。依此类推

如果单击
向下按钮
,如果不是最后一项,则应向下滚动

功能滚动条(id){
console.log(id);
$(“.container”).animate(
{ 
scrollTop:$(“#”+id).offset().top
},
“快”
);

}
在身体上而不是在.container上执行动画

function scroll(id){
console.log(id);
$("body").animate({ scrollTop: $("#"+id).offset().top}, "fast");

}
还设置了

var pointedPosition=0;

拨弄因为您的div
.container
没有滚动条,所以您可以做两件事

1。设置身体动画

$("body").animate({ scrollTop: $("#"+id).parent('.item').offset().top}, "fast");

2。将最大高度设置为div

.container{
   height: 100%;
   overflow-y: scroll;
   max-height:200px;    
  }

中给出的代码很好,只需如上所述更改animate()


刚刚尝试过-$('html')在Chrome中不起作用,$('body')在Firefox中不起作用,因此需要$('html,body')。调用.stop()也是一件好事。

假设您拥有按钮单击事件中的元素id,请尝试将滚动函数代码更改为:

 function scroll(id){
      $('html, body').animate({ 
      scrollTop: $("#"+id).offset().top
        }, 2000);
}

我已经在这里更新了您的代码。

这很好。但是,当我们多次单击时,它将转到不同的位置。例如,当单击up firt时,它应该变为6,然后变为5,……依此类推……但之后它将变为26@MohitKumar.谢谢,但这把小提琴甚至没有滚动。有没有办法在不给身体最小高度的情况下做到这一点?如果最大高度太大会发生什么?什么不起作用?这对我来说很好。它确实会滚动到相应的分区。您可以再次检查吗?此小提琴不会滚动到元素
 function scroll(id){
      $('html, body').animate({ 
      scrollTop: $("#"+id).offset().top
        }, 2000);
}