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