我在根据窗口宽度调整代码时遇到了麻烦。如果窗口宽度小于450,我希望它滚动到某个部分,否则滚动到另一个部分。我要去哪里错了?

$('.artist-kina').click(function( e ){
    e.preventDefault();
    $('html, body').animate({
        if ($(window).width() < 450 {
            scrollTop: $('#artists').offset().top - 60
        }
        else {
            scrollTop: $('#artists').offset().top - 115
        }
    }, 500);
    $('.artists-home').fadeOut(function() {
        $('.kina-gallery').fadeIn('slow');
    });
});

最佳答案

括号是一个问题,但是从更大的意义上说,语法是完全错误的:

$('html, body').animate({
    scrollTop: $("#artists").offset().top - (
      $(window).width() < 450 ? 60 : 115
    )
}, 500);


您不能只将if语句放入对象文字的中间。但是,您可以使用? :运算符在作为表达式一部分的值之间进行选择。

现在,请注意,在所有浏览器中都可能无法正常使用<body>的滚动位置。 Safari曾经对此有问题;它可能可以在浏览器的更现代版本中使用。

关于javascript - jQuery的窗口宽度条件不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25823666/

10-12 06:47