jQuery scrollTop 未触发
jQuery scrollTop Not Triggering
我有一些这样的标记:
<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>
我正在尝试获取它,以便在单击 #landing
中的 <p>
元素时,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);
}
});
但这也不管用。我在控制台中没有收到任何错误消息,但事件似乎不会触发。我已经用一个简单的警报语句测试了它,效果很好,只是我无法让它滚动
我想您可能正在寻找这样的东西?
$('#landing p').click(function(){
var headerOffset=$('#header').offset();
$('html,body').animate({
scrollTop:headerOffset.top
});
});
我有一些这样的标记:
<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>
我正在尝试获取它,以便在单击 #landing
中的 <p>
元素时,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);
}
});
但这也不管用。我在控制台中没有收到任何错误消息,但事件似乎不会触发。我已经用一个简单的警报语句测试了它,效果很好,只是我无法让它滚动
我想您可能正在寻找这样的东西?
$('#landing p').click(function(){
var headerOffset=$('#header').offset();
$('html,body').animate({
scrollTop:headerOffset.top
});
});