更好地控制滚动行为

时间:2018-06-21 11:09:08

标签: javascript events scroll

我为页面的全屏部分制作了一个js插件(带有$ .fn.extend jQuery),可以检测触摸板,触摸,检测部分是否小于,等于或大于VH等。

我正在寻找控制滚动行为的最佳方法,最好的方法是始终event.preventDefault();,然后在条件允许的情况下保持低谷。我没有找到这样的东西,所以我必须在条件出现后阻止滚动,例如,如果有人用鼠标滚轮向下滚动,动画在鼠标滚轮的第一个“滴答”后立即消失,而如果有人进行长时间滚动,则应该阻止其余的滚动但相反,它有点马车或缓慢,并且窗户在跳一点,看上去很糟糕。

addEvent(document,'wheel',      function(event) { MainScroller(event) }, {passive:false} );
addEvent(document,'mousewheel', function(event) { MainScroller(event) }, {passive:false} );
function MainScroller(event){
    if($this.DISABLE ){
        return false;
    }
        // if isnt touchpad
    if(HisTouchPad){
        return true;
    }
        // set new time
    HnewTime = new Date().getTime();

        // set touchpad time counter
    if(HnewTime - HoldTime > 100){
        HfirstTime = HnewTime;
        HcountTime = 0;
    }else HcountTime++;

        // set is touchpad
    if( HcountTime > 12 )
        HisTouchPad = true;

        // block event if animating or small time
    if( Hanimating || HnewTime - HoldTime < 100 ){
        HoldTime = HnewTime;
        event.preventDefault();
        return false;
    }

@edit 如果您想查看效果,请访问以下网站地址 ModelowanieSylwetki 和脚本源 ScrollSpyMenu.js(如果您想自己使用)

0 个答案:

没有答案