$(window).width() 和 $('body').scrollLeft() 在 IE 和 Fi

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

本文关键字:IE Fi body width window scrollLeft      更新时间:2023-09-26

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

此示例站点正在使用 chrome。该功能是身体居中,即使它包含 1600px 的宽div。然后,默认情况下,滚动条在每个窗口大小中居中。

现在,问题是这在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).on('resize', function() {
  /* your code */
});

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

编辑

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

如果你想滚动点击任何按钮,那么你可以使用jquery执行以下操作。

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

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