如何防止浏览器自动滚动重新加载javascript?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何防止浏览器自动滚动重新加载javascript?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1497字,纯文字阅读大概需要3分钟。
内容图文
![如何防止浏览器自动滚动重新加载javascript?](/upload/InfoBanner/zyjiaocheng/777/74dbde1ae8514a7da764e41e421b8205.jpg)
参见英文答案 > Prevent automatic browser scroll on refresh 7个
所以,现在大多数浏览器会在页面刷新时自动重新定位窗口滚动,这通常很好,但我有一种情况需要重新加载页面并专注于用户离开的页面的不同部分.注意,获取焦点的新元素从隐藏开始,因此散列将无效.我需要在JS中处理它,所以我可以使div可见,等等.
重载后调用…
$(document).ready(function(){
$('#mydiv').show();
var top = $('#myelement').offset().top;
window.scrollTo(0, top);
});
尽管如此,该页面还是关注用户离开页面的位置.经过大量调试后,在我看来代码运行得很好,但浏览器正在处理重新加载事件,并重新定位我新定位的滚动…它瞬间发生,但如果我刚刚发出警报我的滚动,它显示了正确的屏幕位置.在解除警报后,浏览器会将滚动条跳回到IT认为它应该到达的位置(至少在Chrome中它是这样).
我的问题是,有什么方法可以阻止浏览器(跨浏览器)处理重载事件?延迟我的滚动延迟似乎工作,但它看起来非常不专业和跳跃.
我试过了
$(document).unbind("scroll");
正如我在这里看到的那样推荐,但它没有做任何事情.
在此先感谢您的帮助.
解决方法:
这是一个适用于FF(18),Chrome(24)和IE(9)的解决方案.
将以下内容放在文档头部的脚本中:
function autoScroll() {
var div = document.getElementById("mydiv");
div.style.display = '';
var top = div.offsetTop;
if(window.scrollTop != top)
window.scrollTo(0, top);
}
function loadAutoScroll() {
autoScroll();
window.onload = null;
return false;
}
function scrollAutoScroll() {
autoScroll();
window.setTimeout(function(){ window.onscroll = null; }, 100);
return false;
}
window.onload = loadAutoScroll;
window.onscroll = scrollAutoScroll;
我相信可以推出更清洁的解决方案.
内容总结
以上是互联网集市为您收集整理的如何防止浏览器自动滚动重新加载javascript?全部内容,希望文章能够帮你解决如何防止浏览器自动滚动重新加载javascript?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。