我基于四个标签构建了一个移动导航菜单。第一项是webapp的活动屏幕。其他3项是搜索菜单,通知菜单和一般菜单。单击最后三个选项卡中的一个时,他们将使用jQuery display: block
函数获取show()
。
单击其中一个项目时,页面应滚动到顶部。但是,当项目关闭并再次显示主屏幕时,它应该滚动回最后一个已知的滚动位置。我一直试图用以下代码实现它。
var scrollposition = $(window).scrollTop();
$("#mobilenav").on("mouseup touchend", function(e) {
console.log(scrollposition);
$(notificationButton).on('click', function () {
notificationDiv.show();
$(window).scrollTop(0);
});
if(!notificationDiv.is(e.target)
&& notificationDiv.has(e.target).length === 0)
{
notificationDiv.hide();
$(window).scrollTop(scrollposition);
}
});
问题是它只记得加载页面时的滚动位置。当变量scrollposition放在.on()函数内部时,它会在单击notificationButton时更新位置,这会将scrollposition的值设置为0。
答案 0 :(得分:0)
您可以保存脚本的状态 例如onTop = false; 并更改脚本内的状态。当你需要回到顶部或底部时,你可以检查状态,接受或改变他。