jQuery - 如果第一个条件为假,为什么只执行第一个条件或者根本没有执行条件?

时间:2016-01-19 21:39:25

标签: javascript jquery

我试图做的是有一个固定的按钮,一旦点击,滚动到页面上的特定部分。但是,只有第一个条件被执行,其他条件似乎完全被忽略,即使第一个条件是假的。我在这做错了什么?以下是代码。

[]

2 个答案:

答案 0 :(得分:3)

这是因为inputscr的值只在您准备好文档时运行win函数时设置一次。您可能希望每次调用scroll时刷新它们。

所以正确的版本会如下:

click

答案 1 :(得分:0)

你的功能混乱了。您希望所有滚动内容都在函数中,然后将单击处理程序绑定到该函数,并在document.ready上初始化它:

$(document).ready(function () {
    scroll();
    var dob = $('#dob');

    dob.click(function(){
        scroll();
    }
});

function scroll() {
    var one = $('#one');
    var two = $('#two');
    var thr = $('#thr');
    var fou = $('#fou');
    var fiv = $('#fiv');

    var scr = $(window).scrollTop();
    var win = $(window).height();

    if ( scr < win ) {
        $('html, body').delay(125).animate({
            'scrollTop' : two.offset().top
        });
    }
    else if ( scr >= win && scr < (win * 2) ) {                 
        $('html, body').delay(125).animate({
            'scrollTop' : thr.offset().top
        });
    }
    else if ( scr >= win * 2 && scr < (win * 3) ) {
        $('html, body').delay(125).animate({
            'scrollTop' : fou.offset().top
        });
    }
    else if ( scr >= win * 3 && scr < (win * 4) ) {
        $('html, body').delay(125).animate({
            'scrollTop' : fiv.offset().top
        });
    };
}