2017-03-08 67 views
0

下来我想要做滚动到一个元素如WhatsApp的搜索滚动到元素并在jQuery的

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

即;元素编号为chat-7。 ,当点击up button应滚动到chat-6,然后chat-5 ..等等。

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

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

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

可惜这种代码不能正常工作

回答

0

因为你的DIV .container没有滚动条,所以你可以做两件事情。

1.动画身体

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

Demo

2.设置最大高度以div的

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

Demo

+0

这就是fine.butr,当我们点击它不止一次时,它会到不同的位置。例如,当点击firt它应该转到6,然后5,..等等..但是它会在6之后变为2 –

+0

您需要设置var pointedPosition = 0; – CaptainHere

+0

@MohitKumar。谢谢,但这个小提琴甚至没有滚动。 –

0

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

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

} 

还设置

var pointedPosition=0; 

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

+0

可以ü请编辑小提琴 –

+0

这不起作用 –

+0

什么是不工作?这对我来说可以。它确实滚动到相应的分区。你能再次检查吗? – CaptainHere

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

http://jsfiddle.net/p3kar5bb/231/中给出的代码很好,只需更改animate(),如上所述。

刚刚试过 - $('html')在Chrome中不起作用,$('body')在Firefox中不起作用,所以需要$('html,body')。而且调用.stop()是一件好事。

0

假设你有一个从按钮元素的id点击事件,试图滚动功能代码改成这样:

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

而且我有更新在这里http://jsfiddle.net/p3kar5bb/231/你的代码。