作为组件测试的一部分,我正在尝试验证在PhantomJS中滚动元素。虽然滚动代码在我们的应用程序中运行良好,但在Phantom中运行时,元素的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)
您是否尝试过设置页面的viewportSize
?我猜想如果没有设置大小,整个页面都会被渲染,因此不需要滚动(整个页面在视口中可见)。