当我打开我的菜单并向下滚动它,关闭它并再次重新打开它时,菜单保持在那一点,但我希望每次打开它时都会打开它,并且还有一个锚链接。
我已添加此内容,点击链接后关闭菜单:
$("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 :(得分: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函数会滚动多个像素,因此如果您滚动主体的大小,您将始终位于顶部。