我有一些像这样的标记:
<div id="landing">
<p>Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin.</p>
</div>
<header id="header">
<p>Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin.</p>
<p>Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin.</p>
<p>Ut in nulla enim. Phasellus molestie magna non est bibendum non venenatis nisl tempor. Suspendisse dictum feugiat nisl ut dapibus. Mauris iaculis porttitor posuere. Praesent id metus massa, ut blandit odio. Proin.</p>
</header>
我正试着这样做,以便在点击<p>
中的#landing
元素时,jQuery将页面向下滚动到#header
元素。
通过jQuery文档,我会假设它将如此简单:
$('#landing p').click(function() {
$('#header').scrollTop(250);
});
但这似乎根本不起作用。另外,我使用scrollTop
方法查看的每个其他线程(包括我之前/类似线程的一些答案)似乎都使用了更复杂的代码。所以我想也许我需要这样的东西:
$('#landing p').bind('click', function(e) {
try {
e.preventDefault();
target = this.hash;
$('#header').animate({
scrollTop: 0
}, 150);
} catch (error) {
alert('error - ' + error);
}
});
然而,这也不起作用。我在控制台中没有收到任何错误消息,但事件似乎不会触发。我用一个简单的警告声明进行了测试,它运行正常,只是我无法滚动
答案 0 :(得分:1)
我想你可能正在寻找这样的东西?
$('#landing p').click(function(){
var headerOffset=$('#header').offset();
$('html,body').animate({
scrollTop:headerOffset.top
});
});