为什么这不会在IE中工作,如果我将滚动条移动到中间然后刷新它将不会重置为零,而是保持在最后一个位置?
$(document).ready(function(){
$(window).scrollLeft(0);
});
由于
答案 0 :(得分:2)
此脚本应该可以根据需要使用
$(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
。这就是为什么在150ms之后无论如何都是无限制的处理程序。
答案 1 :(得分:1)
尝试
$(window).load(function(){
$('body, html').scrollLeft(0);
});
答案 2 :(得分:0)
尝试
$(document).ready(function(){
$('body, html').scrollLeft(0);
});