为什么这在 IE 中不起作用,如果我将滚动条移到中间然后刷新它不会重置为零,而是停留在最后离开的位置?
$(document).ready(function(){
$(window).scrollLeft(0);
});
谢谢
为什么这在 IE 中不起作用,如果我将滚动条移到中间然后刷新它不会重置为零,而是停留在最后离开的位置?
$(document).ready(function(){
$(window).scrollLeft(0);
});
谢谢
该脚本应该可以根据需要工作
$(document).ready(function ()
{
$(window).bind("scroll", ScrollOnLoad);
// IE fix, remove scroll handler after 150ms
setTimeout(UnbindScroll, 150);
});
function ScrollOnLoad() {
UnbindScroll();
$(window).scrollLeft(0);
}
function UnbindScroll() {
$(window).unbind("scroll", ScrollOnLoad);
}
如您所见,IE 的行为是不同的。它甚至在之后触发scroll
事件document.ready
。此脚本将连接此事件并scrollLeft(0)
在刷新后(在所有浏览器中)。
复杂的部分是,当用户第一次访问该页面时,如何解决新来者。然后 Internet Explorer 不会触发scroll
事件。而且我们的处理程序仍在运行(当用户第一次向右滚动时会向左滚动)。
我们必须scrollLeft
手动解除绑定。这就是为什么在 150 毫秒之后无论如何处理程序都是无界的。
尝试
$(window).load(function(){
$('body, html').scrollLeft(0);
});
尝试
$(document).ready(function(){
$('body, html').scrollLeft(0);
});