Javascript Jquery 100%滚动到第一节

Javascript Jquery 100%滚动到第一节,javascript,jquery,css,debugging,scroll,Javascript,Jquery,Css,Debugging,Scroll,我试图将页面的100%滚动到第一个部分,然后正常滚动到其他部分,反之亦然 我尝试了不同的方法,除了一个循环外,没有任何结果。。检查小提琴 这是页面的结构,每个元素都有100%的高度: <header>Header content...</header> <section>Section content...</section> <section>Section content...</section> <section

我试图将页面的100%滚动到第一个部分,然后正常滚动到其他部分,反之亦然

我尝试了不同的方法,除了一个循环外,没有任何结果。。检查小提琴

这是页面的结构,每个元素都有100%的高度:

<header>Header content...</header>
<section>Section content...</section>
<section>Section content...</section>
<section>Section content...</section>

作为插件,我已经使用了Alton(小提琴中的演示链接),但是如果有压力或者osX的惯性滚动,它就不能很好地工作

为了实现这一点,我添加了一个变量
isScrolling
,该变量指示javascript是否正在忙于滚动。当scroll函数完成时,我将该变量设置为false,并重新计算lastScrollTop

$(函数(){
var lastScrollTop=$(窗口).scrollTop(),
δ=5,
eleH=$('header').outerHeight(),
isScolling=假;
$(窗口)。滚动(函数(){
如果(isScolling)
返回;
var nowcolltop=$(this.scrollTop();
if(Math.abs(lastScrollTop-nowScrollTop)>=delta){
如果(nowScrollTop=lastScrollTop){
isScolling=true;
$('html,body')。设置动画({
scrollTop:$(“正文部分:类型的第一个”).offset().top
},600,函数(){
isScolling=假;
lastScrollTop=$(窗口).scrollTop();
});
log(“向下滚动”);
}否则,如果(现在)滚动顶部
$(function () {
    var lastScrollTop = $(window).scrollTop(),
        delta = 5,
        eleH = $('header').outerHeight();
    $(window).scroll(function () {
        var nowScrollTop = $(this).scrollTop();
        if (Math.abs(lastScrollTop - nowScrollTop) >= delta) {
            if (nowScrollTop <= eleH && nowScrollTop > lastScrollTop) {
                $('html,body').animate({
                    scrollTop: $('body section:first-of-type').offset().top
                }, 600);
                console.log('Scroll down');
            } else if (nowScrollTop <= eleH && nowScrollTop < lastScrollTop) {
                $('html,body').animate({
                    scrollTop: 0
                }, 600);
                console.log('Scroll up');
            }
            lastScrollTop = nowScrollTop;
        }
    });
});
html, body {
    height:100%
}
header, section {
    display:block;
    width:100%;
    height:100%;
}
header {
    background-color:gray;
}
$(function () {
    var lastScrollTop = $(window).scrollTop(),
        delta = 5,
        eleH = $('header').outerHeight(),
        isScolling = false ;
    $(window).scroll(function () {
        if(isScolling)
            return;

        var nowScrollTop = $(this).scrollTop();
        if (Math.abs(lastScrollTop - nowScrollTop) >= delta) {
            if (nowScrollTop <= eleH && nowScrollTop >= lastScrollTop) {
                isScolling = true;
                $('html,body').animate({
                    scrollTop: $('body section:first-of-type').offset().top
                }, 600, function() {
                    isScolling = false;
                    lastScrollTop = $(window).scrollTop();
                });
                console.log('Scroll down');
            } else if (nowScrollTop <= eleH && nowScrollTop < lastScrollTop) {
                isScolling = true;
                $('html,body').animate({
                    scrollTop: 0
                }, 600, function() {
                    isScolling = false;
                    lastScrollTop = $(window).scrollTop();
                });
                console.log('Scroll up');
            }
            lastScrollTop = nowScrollTop;
        }
    });
});