3

我无法理解这个问题,所以我不得不问。我正在尝试在单击事件上做一个非常简单的 jQ 滚动到元素。我之前在不同的页面上成功地构建了相同的功能。

$('li.newsmenu a').click(function() {
    $('html, body').animate({scrollTop: $('section#news').offset().top});
        return false;
});

我的选择器都很好。

我已经测试了点击事件,它会给我一个警报('like this');

在控制台中,$('section#news').offset().top值返回一个合理的717

我在 Chrome 和 Safari 中进行了测试,但没有成功。

我在别人的工作之上和 HTML5 样板 Wordpress 主题系统之上工作,我想知道其中是否有什么东西。

有没有人有任何想法?这让我发疯了。

4

1 回答 1

2

好的,这看起来像一个 webkit 问题。通过指定

html, body { height: 100%; } 

它将它们的“高度”限制在窗户的高度。所以scrollTop(x)从不工作。如果你修改你的 CSS 不包含这些声明,一切都会再次起作用。另一种解决方法是将您的正文内容放在可滚动的 div 中并滚动它。我想说这是一个 webkit 错误,因为这种行为看起来很奇怪。您可以通过向下滚动窗口一点点来亲自查看它。然后查询所有内容的当前 scrollTop 值,它始终为零!body、html、document、window、div#top等

于 2012-01-26T19:20:04.420 回答