2017-03-08 64 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/你的代碼。