2014-02-10 5 views
0

개체 내의 함수를 사용하여 스크롤 할 때 사이드 패널을 상단 패널로 변환하고 있습니다. Jquery 끈적한 함수가 맨 위로 빠르게 스크롤하면 실패합니다.

(나는 "코드를 축소 된 상기 오브젝트 이름을 제거")과 같다 :

$(document).on("scroll", vars.stickyNav); 

var vars = { ... etc 

    undoStick: function() { 
     vars.sticked = false; 
     vars.stickyMenu.removeClass('_sticked'); 

     return vars.stickyMenu.animate({ 'top': '-60px' }, 0, function() { 
      vars.clone.css({'left':-32,display:'none'}); 
     }); 
    }, 

    stickyNav: function() { 
     if (! vars.sticked && vars.stickyHeight <= vars.scrollTop) { 
      vars.sticked = true; 

      return vars.stickyMenu.addClass('_sticked').animate({ 'top': '40px'}, 0, function(){ 
       vars.clone.show(null); 
       vars.clone.css('left',0); 
      }); 
     } 
     else if (vars.sticked && vars.stickyTop >= vars.scrollTop) { 
      return vars.undoStick(); 
     } 
    } 
} 
이 가진 문제는

그 .. 난의 상단에 하단 somewehre에서 매우 빠르게 이동하면 패널이 옆으로 뒤로 스틱하지 않는 페이지. 정상/느린/정상 스크롤 할 경우 작동합니다.

대부분의 변수는 스크롤 기능 외부에서 정의됩니다. 스크롤 할 때 $ (window) .scrollTop() 변수를 업데이트하는 창에 바인드 된 추가 스크롤 기능이 있습니다.

이 문제의 원인은 무엇일까요? 애니메이션 기능은 0ms로 설정됩니다.

추신 : css 전환 (입방체 베 지어)이 있습니다.

+0

스크롤 단계가 원인 일 수 있습니다. 방아쇠 기능에 약간의 지연을두면 효과가 있습니까? – Shomz

+0

어떻게 그럴 수 있죠? setTimeout? – user2429266

+0

문서 높이에 따라 달라집니다. 문서가 많을수록 오류가 많이 발생합니다. 그래서 너무 많은 사건들이 해고 되었습니까? – user2429266

답변

0

발견. 애니메이션()을 CSS로 변환하면 everthing이 잘 작동합니다. 감사.

빠른 속도로 실행하십시오. 그것은 더 잘 작동하지만 항상 없습니다.