문제

나는 현재 스크롤 div 는 동적으로 채워집니다.
나는 기능을 포착하는 UpArrow 및 DownArrow 키를 누르고 변경 내용 클래스에서는 부모 div 한 아이는 선택 (기본적으로 이것을 흉내내 선택 입력)

여기에 내가 무엇을 하고 싶:이 필요합 div 의 볼 수 있는 지역을 변경(또는)을 보여 가장 최근에"선택"자녀이지만,경우에는 자녀가 아닌 이미에서 볼 수 있는 지역의 부모이다.

그래서 나를 얻기 위해 필요한 영역과 관련하여 scrollHeight 의 부모 div 어떻게 든다...그러나 나는 확실하지 않 어떻게 작업을 수행합니다.

또한,나를 설정하는 방법을 볼 수 있는 지역의 부모 div.

어떤 도움을 주시면 감사하겠습니다!

도움이 되었습니까?

해결책

도, 그것을 알아 냈습니다

먼저 나는 볼 수있는 영역을 통해 볼 수 있습니다

var viewableTop = $("#parentDiv").scrollTop;
var viewableBottom = $("#parentDiv").innerHeight() + $("#parentDiv").scrollTop;

따라서 Viewabletop과 ViewableBottom 사이의 모든 것이 볼 수 있습니다. 그러나 실제로 당신은 그것을 알 필요가 없습니다. 대신 다음을 알아야합니다

//getting child position within the parent
var childPos = $("#childDiv").position().top;
//getting difference between the childs top and parents viewable area
var yDiff = ($("#childDiv").position().top + $("#childDiv").outerHeight()) - $("#parentDiv").innerHeight()

그 다음에

//if upArrow and childPosition is above viewable area (that's why it goes negative)
if(event.keyCode == 38 && childPos < 0)
    $("#parentDiv").scrollTop += childPos;//add the negative number to the scrollTop
//if downArrow and the difference between childs top and parents viewable area is greater than the height of a childDiv
else if(event.keyCode == 40 && yDiff > $("#childDiv").outerHeight()-1)
    $("#parentDiv").scrollTop += yDiff;//add the difference to the parents scrollTop

다른 팁

를 사용하는 경우 jQuery,당신이 얻을 수 있는 위치 요소의 상대적인 위치는 부모를 사용하여 position().스크롤 div 설정할 수 있습을 상대/절대 위치를 확인 그것은 배치됩니다.

또한,변경할 수 있습니다 scrollTop 속성을 변경하는 스크롤하는 위치를 표시합니다.또 jquery scrollTop(pos).

내부 Div의 스크롤 탑을 가져와야합니다. 그에 지외선 DIV의 높이를 추가하면 시청 가능한 치수를 줄 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top