我正在构建一个纯HTML / CSS滑块(没有JS)。它运行得很好,参见代码。
您需要下载并在本地执行它,以了解我的问题,因为它与浏览器的后退按钮和前向按钮有关。
当单击要导航的链接时,URL将更改为#a1、#a7、#a5,无论您在做什么。滑块正确滚动到适当的幻灯片。如果您手动更改URL,例如将#a3
而不是#a7
放置,滑块也将正确滚动。
但是,当您返回(或向前)时,将从#a3更改为#a7,但内容不会滚动。
知道为什么吗?知道我能做些什么让卷轴在后面的动作吗?
发布于 2019-08-26 13:27:24
我问了一个Firefox开发人员,他向我解释了为什么这是预期的行为,而不是bug。
我误解了背后的行动是怎么回事。快速回答:-它不去之前选择的锚,它去的身体滚动是。
仍在使用问题中代码页中的代码:
overflow-x: scroll
我以为浏览器回滚到#a3。但是实际上,它正在滚动到点击链接之前的位置。看到它付诸行动:
#a5
#a7
URL更改为#a5
,但#a3显示在屏幕上,因为在单击链接之前您就是这样做的。
因此,它是预期的行为等级库。
然而,这不是I想要的行为。所以,让我们去做一个肮脏的黑客:
window.onhashchange = function() {
window.location.href = window.location.href;
};
现在,当单击back时,它将强制页面在本地重新加载(没有服务器请求),并滚动到元素。
哇,太难了。
https://stackoverflow.com/questions/57656284
复制相似问题