$(window).width() 和 $('body').scrollLeft() 在 IE 和 Firefox 中不工作

$(window).width() and $('body').scrollLeft() not working in IE and Firefox

样本:http://kat.isltest.net/col/

此示例站点正在 chrome 中运行。功能是主体居中,即使它包含 1600 像素的宽 div。然后滚动条默认居中在每个 window 大小。

现在,问题是这在 IE 和 Firefox 中不起作用。

代码如下:

if ($(window).width() <= 1600) {
    $('body').scrollLeft(0);
}
if ($(window).width() <= 1400) {
    $('body').scrollLeft(110);
}
if ($(window).width() <= 1360) {
    $('body').scrollLeft(130);
}
if ($(window).width() <= 1280) {
    $('body').scrollLeft(170);
}
if ($(window).width() <= 1152) {
    $('body').scrollLeft(235);
}
if ($(window).width() <= 1024) {
    $('body').scrollLeft(300);
}
if ($(window).width() <= 800){
    $('body').scrollLeft(400);
}

你们知道为什么吗? 非常感谢! :)

您需要使用在 window 调整大小时执行的侦听器包装您的代码,否则滚动条只会调整一次:

$(window).on('resize', function() {
  /* your code */
});

我想当浏览器的宽度 window 小于 1600px 时 chrome 将其垂直滚动条调整到中心的原因是默认行为,与您的代码无关。

编辑

此外,如果您希望视口滚动,则需要使用 $(document).scrollLeft() 而不是 $('body').scrollLeft()

如果您想在单击任何按钮时滚动,则可以使用 jquery 执行以下操作。

$('#next').click(function(event) {
event.preventDefault();
$('.surr-cor').animate({
scrollLeft: "+=1350px"
}, "slow");
});

提及 firefox 的事件,因为它适用于事件。您可以将 .surr-cor 替换为 div 元素或 body