2012-06-05 4 views
0

나는 사용자 화면 높이의 5-6 배를 차지하는 350 개의 컨트롤과 함께 거대한 HTML 폼을 가지고있다. 사용자가 페이지 시작 부분에서 각 입력 필드를 완료하고 계속 진행합니다. 일단 커서가 화면 사용자의 바닥 가까이에 있으면 다음 입력 필드를 볼 수 있어야하므로 여기에 문제가 있습니다. 나는 스크롤바 사용을 피하고자합니다. 사용자가 화면 가장자리 근처 컨트롤을 클릭하면 내가 (예를 들어 각 페이지 측면에 대한 200 픽셀)jQuery 스크롤 페이지 그래서 커서는 "논리적 인 중심"에 머무른다

일부 "margines"를 설정하려면, 여기에이 메커니즘 내가 jQuery를 찾고 있어요 또한

을 일해야한다 솔루션

jQuery.ScrollTo를 사용하여 놀고 있지만 내 논리를 코드에 삽입하는 방법을 알아낼 수 없습니다. 작동해야이 같은

답변

1

이것은

http://jsfiddle.net/JsWnk/ 여기에 약간의 문제가

$(document).ready(function() { 

    $('input').focus(function() { 

     var padding = 100; // Desired page "padding" 

     var lbound = $(this).offset().top - $(window).height() + padding; 
     var ubound = $(this).offset().top - padding; 

     if ($(window).scrollTop() < lbound) 
      $(window).scrollTop(lbound); 
     else if ($(window).scrollTop() > ubound) 
      $(window).scrollTop(ubound); 

    }); 
}); 
​ 
+0

이것은 정확히 내가 찾고있는 것입니다. 약간의 조정으로 수평 스크롤을 위해 똑같이 작동해야합니다. – armen

1

뭔가 ...

http://jsfiddle.net/q9QHQ/

$(document).ready(function() { 

    $('input').focus(function() { 

     if ($(this).offset().top > 100) 
      $(window).scrollTop($(this).offset().top + 100); 

    }); 
}); 
+0

, 커서가 밖으로 유지해야 당신이 무언가를 쓰는 것을 제외하고는 현재 창을 닫는다. – armen

관련 문제