Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 滚动浏览页面_Javascript_Jquery - Fatal编程技术网

Javascript 滚动浏览页面

Javascript 滚动浏览页面,javascript,jquery,Javascript,Jquery,我已经在业余时间考虑了好几个星期了,但找不到合适的解决办法。我想做一些类似于这个苹果页面的事情:。问题是,当检测到鼠标滚动时,滚动到下一个元素,在滚动顶部设置动画时阻止滚动,然后,如果滚动方向相反,则再次向后滚动。我已经用数百种方法重写了我的代码,但没有一种方法能像预期的那样工作 这是我尝试过的代码之一,但也不起作用。它还必须确定下一个和上一个位置,这些位置由未定义的变量destiny表示 这可以使用fullPage插件完成: 您提供的代码中到底有什么不起作用?它是否会锁定鼠标滚动,但不会设置自

我已经在业余时间考虑了好几个星期了,但找不到合适的解决办法。我想做一些类似于这个苹果页面的事情:。问题是,当检测到鼠标滚动时,滚动到下一个元素,在滚动顶部设置动画时阻止滚动,然后,如果滚动方向相反,则再次向后滚动。我已经用数百种方法重写了我的代码,但没有一种方法能像预期的那样工作

这是我尝试过的代码之一,但也不起作用。它还必须确定下一个和上一个位置,这些位置由未定义的变量destiny表示


这可以使用fullPage插件完成:


您提供的代码中到底有什么不起作用?它是否会锁定鼠标滚动,但不会设置自动滚动的动画?在看不到实际代码的情况下,我的建议是使用类而不是锁定的变量。仅当scroll事件具有.scrollable状态时,才设置为.scrollable并绑定它。当页面滚动时,jquery将删除该状态。如果你像苹果那样把它们写在一系列的部分中,就不需要额外的命运变量。希望这对您有意义。@Padarom我不知道,它只是不能正常工作,有时会阻塞、bug或滞后,我不知道为什么。@Godinall谢谢,您能更深入地解释一下吗?
var locked = false;
$('body').bind('mousewheel', function(e){
    //prevent page fom scrolling
    if (locked) { return false; };

    if(e.originalEvent.wheelDelta < 0) {
        //scroll down
        $("html, body").animate({ scrollTop: destiny }, function () {
            locked = false;
        });
    }else {
        //scroll up
        $("html, body").animate({ scrollTop: destiny }, function () {
            locked = false;
        });
    }
});