2013-08-07 3 views
0

가장 좋은 방법은 지연 : 당신 같은는 예를 들어 당신을 제공하기 위해이 문제를 설명하기 위해

http://jsfiddle.net/kMPDG/ 기본적으로

, 당신은 크롬에서 그 보면, 페이지 2를 지나서 스크롤하면 전체 페이지가 왼쪽으로 이동하여 오른쪽에있는 페이지 3이 표시됩니다. 이것은 Chrome에서 잘 작동하지만, Firefox에서 같은 예제를 시도하면 전환 시점에 스크롤이 느리고 느려집니다.

이벤트를 조절하는 간단한 함수를 통해 스크롤 기능을 실행 해 보았습니다. 그 상황에서 부진은 사라졌지 만 몇 밀리 초의 지연 (분명히)으로 대체되었습니다.

너희들 여기 나 도와 줄 조언이있어?

// Code included in case jsfiddle.net fails. 
$(function() { 
    $('.totheright').css({ 
     position: "absolute", 
     left: "100%", 
     width: "100%" 
    }); 
    $('#page3').css({ 
     marginTop: "40%" 
    }); 

    var page2Offset = $('#page2').offset(); 
    var page2Width = $('#page2').width(); 
    var scrollFunc = function() { 
     var scrollTop = $(window).scrollTop(), 
      scrollLeft = $(window).scrollLeft(); 
     if(scrollTop > page2Offset.top){ 
      var diff = (scrollTop - page2Offset.top) * 4; 

      if(diff > page2Width) 
       $('html, body').scrollLeft(page2Width); 
      else 
       $('html, body').scrollLeft(diff); 
     } else if(scrollLeft != 0) { 
      $('html, body').scrollLeft(0); 
     } 
    }; 

    $(window).bind('scroll', scrollFunc); 
}); 

답변

0

시도 다음

$(function() { 
var page2Offset = $('#page2').position(); 
var page2Width = $('#page2').width(); 
var scrollFunc = function() { 
    var scrollTop = $(window).scrollTop(), 
     scrollLeft = $(window).scrollLeft(); 
    if(scrollTop > page2Offset.top){ 
     var diff = (scrollTop - page2Offset.top) * 4; 

     if(diff > page2Width) 
      $('html, body').scrollLeft(page2Width); 
     else 
      $('html, body').scrollLeft(diff); 
    } else if(scrollLeft != 0) { 
     $('html, body').scrollLeft(0); 
    } 
    }; 

    $(window).bind('scroll', scrollFunc); 
}); 

작업 바이올린은 여기 : http://jsfiddle.net/kMPDG/1/ 당신이 변경된 것을 볼 수

+0

, 광산 동일하게 나타남? – R4wizard

+0

방금 ​​$ ('. totheright')을 (를) 제거했습니다 .CSS ({ 위치 : "절대", 왼쪽 : "100 %", 너비 : "100 %" }); $ ('# page3') .css ({ marginTop : "40 %" }); – maverickosama92