繁体   English   中英

单击后滚动到顶部

[英]Scroll to top after click

当我打开菜单并向下滚动时,将其关闭并再次重新打开,菜单将停留在该位置,但是我希望每次您通过锚点链接将其打开时都在顶部。

单击链接后,我添加了此功能以关闭菜单:

$("li > a").on("click", function() {
        $(".drawer-hamburger").trigger("click");
    });

一切正常,除了重新打开后不会回到顶部。

我试过了:

$('#div').scrollTop();

但这没有效果。 到目前为止,唯一起作用的是:

window.location.reload(true)

但是我认为每次重新加载页面都是过大的。

有没有一种方法可以关闭菜单并在重新打开后单击返回到顶部菜单?

这一切都与此主题有关,

将blivesta动画菜单转换为关闭画布(推送主体)菜单

但是因为这是一个单独的问题,所以我认为最好开始一个新主题。

编辑:让我更具体的情况。 单击汉堡图标,打开菜单。 该列表是可滚动的,因此当我走下一点时,单击锚点链接,菜单关闭,我位于锚点。 到现在为止还挺好。 当我重新打开菜单时,它仍然位于菜单中我滚动至的位置。 但是我想在重新打开后再次位于菜单顶部,而不刷新我的页面。

编辑2:在此处观看固定结果: http : //codepen.io/Jorus/pen/zBLBpy

您需要将其转换为0px:

$("li > a").on("click", function() {
    $(".drawer-menu").css("transform","translate(0, 0) translateZ(0)");
    $(".drawer-hamburger").trigger("click");
});

已编辑

我喜欢用这段jQuery代码将页面滚动到给定位置。

$("html,body").stop().animate( { scrollTop: 0 }, 1234, "swing" );

stop()结束所有当前正在运行的动画,然后我们定义动画以在scrollTop -value上工作,0表示页面的绝对顶部,放置在您需要的任何位置,例如$('#targetElementId').scrollTop() 1234表示将花费1.234秒,“ swing ”实际上是默认的缓动功能-唯一的选择是线性。

尝试

var x = size of body;
window.scrollBy(0, x);

x是身体的大小,以像素为单位。

window.scrollBy函数可滚动许多像素,因此,如果滚动正文的大小,则始终会在顶部结束。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM