PhantomJS中的动画主体scrollTop不会更改scrollTop值

时间:2015-11-06 19:54:18

标签: javascript jquery phantomjs

作为组件测试的一部分,我正在尝试验证在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。

我一直无法找到解释此问题的文档或其他示例。

1 个答案:

答案 0 :(得分:0)

您是否尝试过设置页面的viewportSize?我猜想如果没有设置大小,整个页面都会被渲染,因此不需要滚动(整个页面在视口中可见)。

该属性的

Here is the description