2013-02-20 103 views
0

後更改,所以我有在一個div一個div這樣位置()。頂部不會添加元素

<div id="container"> 
<div id="bottom"> </div> 
</div> 

容器是絕對定位。

我加入使用。之前的元素()

$("#bottom").before('<p>Some Paragraph</p>'); 

然後我試圖向下滾動到容器

$("#container").scrollTop($('#bottom').position().top); 

它工作了一段時間的底部,但隨後停止工作。

如果我打印「$('#bottom')。position()。top」,我發現它增加到某個點然後停止。

我這樣做的原因是因爲我在滾動前也有一個動畫,並且它和動畫一起工作正常,但正如我所說的那樣。

我想出的唯一臨時解決方案是(基本上放了一些大數)。

$("#container").scrollTop(10000000); 

回答

0

使用offset(),而不是position()

$("#container").scrollTop($('#bottom').offset().top); 

參見:http://api.jquery.com/offset/

+0

nope相同的結果 – btevfik 2013-03-04 07:27:21

+0

此外,抵消是相對於文件。但我正在嘗試相對於父母,所以職位應該工作。 – btevfik 2013-03-04 07:28:53

0

我的情況下,我注意到,之後我加入了頁面上的元素,我需要一個小的延遲爲瀏覽器來完成渲染的元素的新高度。

的解決方案是:

setTimeout(function(){ 
    $("#container").scrollTop($('#bottom').position().top); 
}, 50); 

PS:50是一個特別的任意數,它的工作原理只有0在我的情況。