jQuery scrollTop Not Triggering

时间:2015-04-13 05:36:39

标签: javascript jquery jquery-plugins scrolltop scrollto

我有一些像这样的标记:

<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);
    }
});

然而,这也不起作用。我在控制台中没有收到任何错误消息,但事件似乎不会触发。我用一个简单的警告声明进行了测试,它运行正常,只是我无法滚动

1 个答案:

答案 0 :(得分:1)

我想你可能正在寻找这样的东西?

$('#landing p').click(function(){
    var headerOffset=$('#header').offset();
    $('html,body').animate({
        scrollTop:headerOffset.top
    });
});