首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >滚动到jquery中的上下元素。

滚动到jquery中的上下元素。
EN

Stack Overflow用户
提问于 2017-03-08 10:05:01
回答 4查看 924关注 0票数 0

我想要滚动到一个元素,如whatsapp搜索

当用户单击时,search (here it is bottom)应该滚动到最后一个元素

元素具有id chat-7。当单击up button时,应该滚动到chat-6,然后是chat-5,..and,等等。

如果单击down button,它应该滚动到向下,如果不是最后一项。

代码语言:javascript
复制
function scroll(id){
    console.log(id);
    $(".container").animate(
        { 
            scrollTop: $("#"+id).offset().top
        },
        "fast"
    );
}

完整代码在这里http://jsfiddle.net/p3kar5bb/231/

不幸的是,这段代码不能正常工作。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-03-08 10:13:17

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

1.有生命的身体

代码语言:javascript
复制
$("body").animate({ scrollTop: $("#"+id).parent('.item').offset().top}, "fast");

演示

2.将最大高度设置为div

代码语言:javascript
复制
.container{
   height: 100%;
   overflow-y: scroll;
   max-height:200px;    
  }

演示

票数 0
EN

Stack Overflow用户

发布于 2017-03-08 10:12:27

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

代码语言:javascript
复制
function scroll(id){
console.log(id);
$("body").animate({ scrollTop: $("#"+id).offset().top}, "fast");

}

还设置了

代码语言:javascript
复制
var pointedPosition=0;

小提琴http://jsfiddle.net/p3kar5bb/234/

票数 0
EN

Stack Overflow用户

发布于 2017-03-08 10:22:48

代码语言:javascript
复制
$('html, body').animate({
scrollTop: $("#"+id).offset().top
}, 500);

http://jsfiddle.net/p3kar5bb/231/中给出的代码很好,只需如上更改动画()即可。

刚刚尝试过- $('html')在Chrome中不工作,$('body')在Firefox中不工作,所以$('html,body')是必需的。同时调用.stop()也是一件好事。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42668277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档