2016-07-29 160 views
0

当我打开我的菜单并向下滚动时,关闭它并重新打开它,菜单停留在那一点,但是我希望它在顶部打开时每次打开它也会用锚链接。点击后滚动到顶部

我已经添加了这个点击链接时关闭菜单:

$("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

+0

你读过[scrollTop's documentation](https://api.jquery.com/scrollTop/)吗? –

+0

是的,但没有意义。 – Jorus

回答

3

您需要翻译为0px:

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

编辑

+0

是的,我也试过,但没有影响,不知道为什么.. – Jorus

+0

@jorus你可以创建一个jsfiddle吗? – polamoros

+0

我尝试过我的其他话题,但没有很好的工作。让我看看我能否再做一次。 – Jorus

0

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

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

stop()结束当前运行的动画,然后我们定义animationscrollTop - 值工作,0表示页,放在任何你需要的,比如可能$('#targetElementId').scrollTop()的绝对顶部。 1234意味着它需要1.234秒,“swing”实际上是默认的easing函数 - 唯一的选择是线性的。

+0

有了这个,我的菜单停留在他的滚动点上,但是“摇摆”到我的页面顶部。效果不错,但不适合我的菜单。 – Jorus

+0

请添加说明以支持您发布的代码。为什么这会解决问题? –

+0

尽管这段代码可能会解决这个问题,但[包括解释](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)确实有助于提高帖子的质量。请记住,您将来会为读者回答问题,而这些人可能不知道您的代码建议的原因。也请尽量不要使用解释性注释来挤占代码,因为这会降低代码和解释的可读性! – FrankerZ

0

尝试

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

X是身体的像素大小。

window.scrollBy函数会滚动多个像素,所以如果您滚动正文的大小,您总是会在最上面。

+0

请编辑更多的信息。仅限代码和“尝试这个”的答案是不鼓励的,因为它们不包含可搜索的内容,也不解释为什么有人应该“尝试这个”。 – Paritosh

+0

也许这可能有所帮助:codepen.io/Jorus/pen/zBLBpy – Jorus

相关问题