2014-03-30 4 views
1

약 2 일 동안이 문제를 어지럽 혀서 여전히 해결책을 찾을 수 없으므로 여기에 질문해야합니다. 나는 parallex 웹 사이트를 갖고 있습니다. 사용자가 아래로 스크롤 할 때 전체 웹 사이트 자동 스크롤을 시작합니다 (이 지점은 기능적입니다). 사용자가 위로 스크롤하면 자동 스크롤이 중지됩니다. 그런 다음 사용자가 다시 아래로 스크롤하면 자동 스크롤이 같은 속도 (같은 시간 초과)로 다시 시작됩니다. beggining하지만 매번 사용자가 스크롤을 위아래의 자동 스크롤은 jQuery/JS 사용자가 스크롤 업하여 위로 스크롤 할 때 자동 스크롤을 중지합니다.

여기에 해결 내 코드

<script> 
    var act = 0; 
    var y = 0; 
    var mousewheelevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel" //FF doesn't recognize mousewheel as of FF3.x 
    $(window).bind(mousewheelevt, function(e){ 

     var evt = window.event || e //equalize event object  
     evt = evt.originalEvent ? evt.originalEvent : evt; //convert to originalEvent if possible    
     var delta = evt.detail ? evt.detail*(-40) : evt.wheelDelta //check for detail first, because it is used by Opera and FF 

     if(delta > 0) { 
      console.log('nahoru stop y=0 act=0'); 
      y = 0; 
      pageScrollStart(y); 
      act = 0; 
     } 
     else{ 

      if(act==1) 
      { 
       console.log('dolu aktivni nic'); 
      } 
      else 
      { 
       console.log('dolu neaktivni start y=1 act=1'); 
       y = 1; 
       pageScrollStart(y); 
       act = 1; 
      } 
      } 

    }); 
      function pageScrollStart() { 
       window.scrollBy(0,y); 
       scrolldelay = setTimeout('pageScrollStart()',50); 
      }; 

    </script> 

답변

0

입니다 ... 더 빠르게 얻을 ..

 <script> 
    var act = 0; 
    var mousewheelevt = (/Firefox/i.test(navigator.userAgent)) ? "DOMMouseScroll" : "mousewheel" //FF doesn't recognize mousewheel as of FF3.x 
    $(window).bind(mousewheelevt, function(e){ 

     var evt = window.event || e //equalize event object  
     evt = evt.originalEvent ? evt.originalEvent : evt; //convert to originalEvent if possible    
     var delta = evt.detail ? evt.detail*(-40) : evt.wheelDelta //check for detail first, because it is used by Opera and FF 

     if(delta > 0) { 
      pageScrollStop(); 
      console.log('nahoru stop'); 
      act = 0; 
     } 
     else{ 
      if(act !== 1) 
      { 

       pageScrollStart(); 
       console.log('dolu start'); 
       act = 1; 
      } 
      } 

    }); 
      function pageScrollStart() { 
       window.scrollBy(0,1); 
       scrolldelay = setTimeout('pageScrollStart()',50); 
      }; 
      function pageScrollStop(){ 
       clearTimeout(scrolldelay); 
      } 
    </script> 
: 난 그냥 지금은 다음과 같습니다 그래서

기능 "사항 clearTimeout"에 대해 몰랐어요

관련 문제