Javascript/jQuery滚动顶问题

Javascript/jQuery滚动顶问题,javascript,jquery,scrolltop,Javascript,Jquery,Scrolltop,我已经重新创建了一个简单版本的我正在尝试做的事情 页眉应该保持在原来的位置,当您向下滚动时,当您单击页眉div时,它应该向上滚动到页眉顶部,确实如此。但是如果你专注于输入,或者点击“logo”,卷轴应该保持在原来的位置 我尝试的第一种方法是使用jQuery的.css并将输入/徽标的z-index设置为高于标题,然后获取当前滚动条并将其保持在该位置 这类功能正常,但一旦单击输入或徽标,标题滚动就不再有效 我还尝试过将logo/input jQuery更改为。以较慢的速度设置动画,它会保持静止几秒钟

我已经重新创建了一个简单版本的我正在尝试做的事情

页眉应该保持在原来的位置,当您向下滚动时,当您单击页眉div时,它应该向上滚动到页眉顶部,确实如此。但是如果你专注于输入,或者点击“logo”,卷轴应该保持在原来的位置

我尝试的第一种方法是使用jQuery的
.css
并将输入/徽标的
z-index
设置为高于标题,然后获取当前滚动条并将其保持在该位置

这类功能正常,但一旦单击输入或徽标,标题滚动就不再有效

我还尝试过将logo/input jQuery更改为
。以较慢的速度设置动画,它会保持静止几秒钟,然后滚动到顶部,即使我没有设置它。这是第二个例子-

但是,使用第二个示例执行此操作并不会停止其他函数的工作


这种行为有什么我不知道的原因吗?

您需要做的就是停止事件的推进。为此,单击函数返回false

$("#logo, #input").click(function() {
    return false;  // Add this line
});

这里是您的小提琴更新:

您可以防止点击事件传播到标题

$("#logo, #input").click(function(e) {
    e.stopPropagation();
});

看看这个有趣的事件顺序,你所要做的就是停止传播。这是你的修改版


我相信这也会使容器内的所有点击都毫无用处,这可能会给OP带来问题。Steve的答案更合适。我的解决方案还添加了e.preventDefault(),如果徽标是链接,则这并不理想。您可以阅读更多信息,但正如您所指出的,徽标是真实版本中的一个链接,这将使其无法用于导航,因此,
stopPropagation
更适合我的要求,但仍然感谢您的回答:)
$("#logo, #input").click(function(e) {
    e.stopPropagation();
    var y = window.scrollY;

    $('html').animate({
        scrollTop: y
    }, 'slow');
    $('body').animate({
        scrollTop: y
    }, 'slow');
});