2015-11-06 44 views
0

作爲組件測試的一部分,我試圖驗證一個元素在PhantomJS中滾動。雖然滾動代碼在我們的應用程序中正常工作,但在Phantom中運行時元素的scrollTop絕不會更改。PhantomJS中的動畫身體scrollTop不會改變scrollTop的值

爲了測試,我保證身體有一個最大高度,以防萬一。

$body = $('body').css({ 
    'max-height': '1000px', 
    overflow: 'scroll' 
}); 

然後我添加一些比身體延伸的元素。

$body.append(
    '<div style="height: 2000px;"></div>' + 
    '<div style="height: 2000px;"></div>' + 
    '<div style="height: 2000px;" data-uid="1"></div>'); 

然後我動畫scrollTop的,給出的第三DIV爲$element(所以offset().top == 4000)。

$body.animate({ 
    scrollTop: $element.offset().top 
}, 150, function() { 
    // $body.scrollTop() is still 0 
}); 

然而,在動畫結束後,主體不報告任何新的scrollTop。

我一直無法找到解釋此問題的文檔或其他示例。

+0

該動畫不向右滾動?價值沒有改變? –

+0

我不確定你在問什麼。即使我設置了$('body')。scrollTop(4000);','$('body')。scrollTop()'仍然返回0. – helion3

+0

我也不應該這樣說,jQuery animate接受css屬性,它接受頂部,但不scrollTop –

回答

0

您是否嘗試過設置頁面的viewportSize?我猜如果沒有設置大小,整個頁面就會被渲染,因此不需要滾動(整個頁面在視口中可見)。

Here is the description該屬性