Jquery Switch Case条件无法正常工作

时间:2015-04-14 00:52:34

标签: jquery

我有一些jquery来改变我的整页背景,当他们达到一些div时,但不幸的是,切换案例陈述有问题

这是第一个代码(升序)

$(window).scroll(function () {
        var top = $(this).scrollTop();
        var slide1 = $('#slide1').offset().top;
        var slide2 = $('#slide2').offset().top;

        switch(true){
        case top >= slide1:
            menu.removeClass('bg-full').addClass('bg-full2');
            break;
        case top >= slide2:
            menu.removeClass('bg-full2').addClass('bg-full3');
            break;
        default:
        menu.removeClass('bg-full2').addClass('bg-full');}

上面的代码正在使用bg-full(默认语句)/ bgfull2(第一种情况但是(第二种情况 )被忽略

我正在尝试第二个代码(降序)

 $(window).scroll(function () {
    var top = $(this).scrollTop();
    var slide1 = $('#slide1').offset().top;
    var slide2 = $('#slide2').offset().top;

    switch(true){
    case top >= slide2:
        menu.removeClass('bg-full2').addClass('bg-full3');
        break;
    case top >= slide1:
        menu.removeClass('bg-full').addClass('bg-full2');
        break;
    default:
    menu.removeClass('bg-full2').addClass('bg-full');
    }

上面的代码正在使用bg-full2(第三种情况)/ bgfull3(第二种情况但是(默认声明 )当我达到第三个案例

时,我会被忽略 请帮助,谢谢, 抱歉,我的英文不好

1 个答案:

答案 0 :(得分:0)

请你试试这个,

 $(window).scroll(function () {
    var top = $(this).scrollTop();
    var slide1 = $('#slide1').offset().top;
    var slide2 = $('#slide2').offset().top;

    if (top > slide2 || top === slide2)
    {
        menu.removeClass('bg-full2').addClass('bg-full3');
        return;
    }

    if (top > slide1 || top === slide1)
    {
        menu.removeClass('bg-full').addClass('bg-full2');
        return;
    }

    menu.removeClass('bg-full2').addClass('bg-full');
  }