我为页面的全屏部分制作了一个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(如果您想自己使用)