2009-04-06 3 views
1

탐색 기능을 사용하기 위해 입력 요소 테이블과 함께 사용하는 Javascript 함수 세트가 있습니다. 현재 포커스 된 요소를 추적하고 한 행의 끝에서 다음 행의 시작 부분까지 오버 플로우되는 것과 같은 것입니다. 내 고정 된 열로 하나의 열에 만 하나의 테이블을 만들고 다른 테이블에 대한 스크롤바가있는 고정 된 첫 번째 열과 스크롤바 지원이 있습니다.Javascript로 스크롤 위치 지정하기 scrollLeft

그러나 최근에 스크롤바의 기본 동작이 조금 부족하다는 사실을 알고있었습니다. 마지막 칼럼으로 이동하면, Firefox는 열을 볼 수있을 정도로 멀리 스크롤하는 대신 스크롤바에 의해 부분적으로 가려집니다. 마찬가지로, 한 번 스크롤하면 마지막 열의 다른 부분을 볼 수 있습니다. 다음 행으로 이동하고 Nav 코드가 첫 번째 열 (고정 된 테이블)의 셀에 포커스를 설정하면 Firefox는 변경되지 않습니다 스크롤 바는 모든 첫 번째 열을 볼 수 있습니다.

이 때문에 저는 자바 스크립트를 사용하여 스크롤바 위치를 수정하는 방법을 조사했습니다. 내 테이블은 세로 스크롤 막대를 사용하지 않고 가로 스크롤 막대 만 사용합니다. 그래서 나는 scrollLeft를 만났습니다.

document.getElementById("meastable").scrollLeft = 1; // reset scroll to leftmost 

불행히도 이것은 단 한 번만 작동하는 것처럼 보입니다. Firebug를 활성화하고이 행이있는 내 탐색 코드를 추적하면 잠시 동안 작동하는 것처럼 보이지만 대부분이 시간대에이 행이 실행되지만 테이블이 왼쪽으로 스크롤되면 속성이 변경되지 않고 변경 사항을 볼 수 없습니다 시각적으로도.

또한 scrollLeft를 높은 수로 설정하여 설명서에 설명 된대로 최대 값으로 설정되며 작동하지 않습니다 (한 번만 제외).

다음 코드를 사용하여 테이블과 함께 스크롤 막대를 설정합니다.

<div style="overflow:auto"> 
<table id="meastable" border="1"> 

모질라의 설명서에 따르면, 이것은 IE에서 유래되었지만 현재는 Firefox에서 작동하는 것으로 보입니다. 이것이 파이어 폭스 만위한 사내 프로젝트이므로 파이어 폭스에서는 실제로 작동하지 않습니까?

그래서 나는 틀린 것이 무엇인지 알아 내려고 노력하고 있습니다. scrollLeft는 올바르게 작동하지 않는 것으로 알려져 있습니까? 아니면 스크롤바 또는 스크롤 막대의 정의에 뭔가를 망쳤는지 다시 돌아와야합니까?

+0

하하 ... 나는 "육식" – Jason

답변

7

포함 div는 오버플로가있는 요소입니다. div가 아닌 테이블의 scrollLeft를 설정해야합니다.

관련 문제