谁能帮我在我的无滚动刷新上添加 X 轴。我不希望它经常在每次刷新时滚动到顶部或左侧。
<script type="text/javascript">
function refreshPage () {
var page_y = document.getElementsByTagName("body")[0].scrollTop;
window.location.href = window.location.href.split('?')[0] + '?page_y=' + page_y;
}
window.onload = function () {
setTimeout(refreshPage, 1700);
if (window.location.href.indexOf('page_y') != -1 ) {
var match = window.location.href.split('?')[1].split("&")[0].split("=");
document.getElementsByTagName("body")[0].scrollTop = match[1];
}
}
</script>
最佳答案
这已经是浏览器的行为(至少,我在 Firefox 和 Chrome 中测试过)。
尽管如此,由于您重新加载的方式,它并没有这样做。使用方法重新加载它工作正常。
//location.reload(forceGet): forceGet is false by default
//false will make it load from the cache
window.location.reload()
但是如果你真的想手动做的话
var page_y = window.scrollY;
window.scrollTo(0, match[1])
在您当前的代码中,它将如下所示:
<script type="text/javascript">
function refreshPage () {
var doc = document.documentElement
var body = document.body;
var page_y = window.scrollY || ((doc && doc.scrollTop) || (body && body.scrollTop || 0)) - (doc.clientTop || 0);
window.location.href = window.location.href.split('?')[0] + '?page_y=' + page_y;
}
window.onload = function () {
setTimeout(refreshPage, 1700);
if (window.location.href.indexOf('page_y') != -1 ) {
var match = window.location.href.split('?')[1].split("&")[0].split("=");
window.scrollTo(0, match[1]);
}
}
</script>
我不知道你想做什么,但我建议你在需要时在本地更改一些内容,而不是重新加载整个页面。
编辑
要在多个平台上工作,请使用 this解决方案。
var doc = document.documentElement
var body = document.body;
var page_y = window.scrollY || ((doc && doc.scrollTop) || (body && body.scrollTop || 0)) - (doc.clientTop || 0);
关于javascript - 将 X 轴添加到 No Scroll Refresh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18067384/