我无法理解这个问题,所以我必须问。我正在尝试在单击事件上执行一个非常简单的 jQ 滚动到元素。我之前已经在不同的页面上成功构建了相同的功能。
$('li.newsmenu a').click(function() {
$('html, body').animate({scrollTop: $('section#news').offset().top});
return false;
});
我的选择器都很好。
我已经测试了点击事件,它会给我一个警报('像这样');
在控制台中,$('section#news').offset().top 值返回合理的 717。
我在 Chrome 和 Safari 中进行了测试,但没有成功。
我正在别人的工作和 HTML5 样板 Wordpress 主题系统之上工作,我想知道其中是否有什么东西。
有人有什么想法吗?这让我发疯。
最佳答案
好吧,这看起来像是一个 webkit 问题。通过指定
html, body { height: 100%; }
它将它们的“高度”限制为窗口的高度。所以 scrollTop(x)
永远不会起作用。如果您修改 CSS 不包含这些声明,一切都会恢复正常。另一种解决方法是将您的正文内容放在可滚动的 div 中,然后滚动它。我想说这是一个 webkit 错误,因为行为看起来很奇怪。您可以通过将窗口向下滚动一点来亲自查看。然后查询所有内容的当前scrollTop值,它始终为零! body、html、document、window、div#top 等
关于jquery - 滚动到页面 jquery 上的元素 - html,body 拒绝滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9022924/