Javascript fullpage.js无法正常使用锚链接

Javascript fullpage.js无法正常使用锚链接,javascript,Javascript,我试图做一个完整的页面滚动,而使用锚链接整个页面,但有时它不会再向上滚动,或链接停止工作或去错误的地方。当我在链接上滚动按下按钮后,它被按下,留下奇怪的空白 链接到代码: 如果有人能帮我调查此事,我将不胜感激 (function() { "use strict"; /*[pan and well CSS scrolls]*/ var pnls = document.querySelectorAll('.panel').length, scdir, hol

我试图做一个完整的页面滚动,而使用锚链接整个页面,但有时它不会再向上滚动,或链接停止工作或去错误的地方。当我在链接上滚动按下按钮后,它被按下,留下奇怪的空白

链接到代码:

如果有人能帮我调查此事,我将不胜感激

(function() {
    "use strict";
    /*[pan and well CSS scrolls]*/
    var pnls = document.querySelectorAll('.panel').length,
        scdir, hold = false;

    function _scrollY(obj) {
        var slength, plength, pan, step = 100,
            vh = window.innerHeight / 100,
            vmin = Math.min(window.innerHeight, window.innerWidth) / 100;
        if ((this !== undefined && this.id === 'well') || (obj !== undefined && obj.id === 'well')) {
            pan = this || obj;
            plength = parseInt(pan.offsetHeight / vh);
        }
        if (pan === undefined) {
            return;
        }
        plength = plength || parseInt(pan.offsetHeight / vmin);
        slength = parseInt(pan.style.transform.replace('translateY(', ''));
        if (scdir === 'up' && Math.abs(slength) < (plength - plength / pnls)) {
            slength = slength - step;
        } else if (scdir === 'down' && slength < 0) {
            slength = slength + step;
        } else if (scdir === 'top') {
            slength = 0;
        }
        if (hold === false) {
            hold = true;
            pan.style.transform = 'translateY(' + slength + 'vh)';
            setTimeout(function() {
                hold = false;
            }, 500);
        }
        console.log(scdir + ':' + slength + ':' + plength + ':' + (plength - plength / pnls));
    }
    /*[swipe detection on touchscreen devices]*/
    function _swipe(obj) {
        var swdir,
            sX,
            sY,
            dX,
            dY,
            threshold = 100,
            /*[min distance traveled to be considered swipe]*/
            slack = 50,
            /*[max distance allowed at the same time in perpendicular direction]*/
            alT = 300,
            /*[max time allowed to travel that distance]*/
            elT, /*[elapsed time]*/
            stT; /*[start time]*/
        obj.addEventListener('touchstart', function(e) {
            var tchs = e.changedTouches[0];
            swdir = 'none';
            sX = tchs.pageX;
            sY = tchs.pageY;
            stT = new Date().getTime();
            //e.preventDefault();
        }, false);

        obj.addEventListener('touchmove', function(e) {
            e.preventDefault(); /*[prevent scrolling when inside DIV]*/
        }, false);

        obj.addEventListener('touchend', function(e) {
            var tchs = e.changedTouches[0];
            dX = tchs.pageX - sX;
            dY = tchs.pageY - sY;
            elT = new Date().getTime() - stT;
            if (elT <= alT) {
                if (Math.abs(dX) >= threshold && Math.abs(dY) <= slack) {
                    swdir = (dX < 0) ? 'left' : 'right';
                } else if (Math.abs(dY) >= threshold && Math.abs(dX) <= slack) {
                    swdir = (dY < 0) ? 'up' : 'down';
                }
                if (obj.id === 'well') {
                    if (swdir === 'up') {
                        scdir = swdir;
                        _scrollY(obj);
                    } else if (swdir === 'down' && obj.style.transform !== 'translateY(0)') {
                        scdir = swdir;
                        _scrollY(obj);

                    }
                    e.stopPropagation();
                }
            }
        }, false);
    }
    /*[assignments]*/
    var well = document.getElementById('well');
    well.style.transform = 'translateY(0)';
    well.addEventListener('wheel', function(e) {
        if (e.deltaY < 0) {
            scdir = 'down';
        }
        if (e.deltaY > 0) {
            scdir = 'up';
        }
        e.stopPropagation();
    });
    well.addEventListener('wheel', _scrollY);
    _swipe(well);
    var tops = document.querySelectorAll('.top');
    for (var i = 0; i < tops.length; i++) {
        tops[i].addEventListener('click', function() {
            scdir = 'top';
            _scrollY(well);
        });
    }
})();
(函数(){
“严格使用”;
/*[平移和旋转CSS卷轴]*/
var pnls=document.queryselectoral('.panel').length,
scdir,hold=false;
函数_滚动(obj){
变长、正压、平移、步长=100,
vh=窗内高度/100,
vmin=Math.min(window.innerHeight,window.innerWidth)/100;
if((this!==未定义和&this.id=='well')| |(obj!==未定义和&obj.id=='well')){
pan=这个| | obj;
正压=parseInt(全天离视/vh);
}
如果(pan==未定义){
返回;
}
正压=正压| | parseInt(平移偏视/vmin);
slength=parseInt(pan.style.transform.replace('translateY(',''));
如果(scdir=='up'和&Math.abs(长度)<(增压-增压/pnls)){
slength=slength-步长;
}else if(scdir==='down'&&slength<0){
slength=slength+步长;
}else if(scdir==='top'){
长度=0;
}
如果(保持===false){
保持=正确;
pan.style.transform='translateY('+slength+'vh');
setTimeout(函数(){
保持=假;
}, 500);
}
log(scdir+':'+slength+':'+plength+':'+(plength-plength/pnls));
}
/*[触摸屏设备上的滑动检测]*/
功能_滑动(obj){
var swdir,
sX,
sY,
dX,
嗯,,
阈值=100,
/*[被视为刷卡的最小行驶距离]*/
松弛=50,
/*[垂直方向上同时允许的最大距离]*/
alT=300,
/*[允许行驶该距离的最长时间]*/
elT,/*[经过的时间]*/
stT;/*[开始时间]*/
obj.addEventListener('touchstart',函数(e){
var tchs=e.changedtouchs[0];
swdir=‘无’;
sX=tchs.pageX;
sY=tchs.pageY;
stT=新日期().getTime();
//e、 预防默认值();
},假);
obj.addEventListener('touchmove',函数(e){
e、 preventDefault();/*[在DIV内时防止滚动]*/
},假);
对象加法器Listener('touchend',函数(e){
var tchs=e.changedtouchs[0];
dX=tchs.pageX-sX;
dY=tchs.pageY-sY;
elT=新日期().getTime()-stT;
if(elT=threshold&Math.abs(dY)=threshold&Math.abs(dX)0){
scdir=‘向上’;
}
e、 停止传播();
});
嗯,addEventListener('wheel',u scrollY);
_刷(井);
var tops=document.querySelectorAll('.top');
对于(变量i=0;i
您能详细描述一下如何一步一步地重现您的问题吗?谢谢。