单击后滚动到顶部

时间:2016-07-29 11:02:17

标签: javascript jquery css

当我打开我的菜单并向下滚动它,关闭它并再次重新打开它时,菜单保持在那一点,但我希望每次打开它时都会打开它,并且还有一个锚链接。

我已添加此内容,点击链接后关闭菜单:

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

一切正常,但重新开放后不会上升。

我试过了:

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

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

window.location.reload(true)

但我认为每次重新加载页面都有点过分。

有没有办法关闭菜单并在重新打开后将菜单返回到顶部,点击?

这一切都与这个话题有关,

Turn blivesta animsition menu into off canvas (push body) menu

但是因为它是一个单独的问题,我认为开始一个新主题会更好。

编辑:让我更具体一点。 我点击汉堡包图标打开我的菜单。该列表是可滚动的,所以当我向下移动时,单击锚点链接,菜单关闭,我在我的锚点。到现在为止还挺好。 当我重新打开菜单时,它仍然在我的菜单中,我正在滚动到的位置。但我希望在重新打开后再次登录菜单,而不刷新我的页面。

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

3 个答案:

答案 0 :(得分:3)

您需要翻译为0px:

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

<强>被修改

答案 1 :(得分:0)

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

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

stop()结束当前正在运行的任何动画,然后我们定义animation以处理scrollTop - 值,0表示页面的绝对顶部,放入您需要的任何内容,可能$('#targetElementId').scrollTop()。 1234意味着它需要1.234秒而“swing”实际上是默认的easing功能 - 唯一的选择是线性的。

答案 2 :(得分:0)

尝试

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

x是主体的大小(以像素为单位)。

window.scrollBy函数会滚动多个像素,因此如果您滚动主体的大小,您将始终位于顶部。