2012-08-14 2 views
1

이 스타일 클라스가 적용된 패널이있는보기가 있습니다.스크롤링 패널의 동적 높이 설정?

.scrollPanel {width : 100 %; 높이 : 375px; overflow : auto;}

해당 패널은 응용 프로그램 제어 확장 페이지가 중첩되어 있습니다.

패널의 스크롤 막대가 나타나고 브라우저 스크롤 막대가 활성화되지 않도록 패널 세트의 높이와 너비가 모두 필요합니다.

이 CSS는 폭에 대해 완벽하게 작동합니다. 브라우저 창 크기를 조정할 수 있으며 필요에 따라 패널 너비가 조정되고 브라우저 가로 스크롤 막대가 절대로 나오지 않습니다.

하지만 100 % 높이를 사용하면 동일하게 작동하지 않습니다. 높이에 맞게 크기를 조정하면 브라우저의 세로 스크롤 막대가 나타납니다.

또한 패널의 높이를 항상 사용 가능한 화면의 높이와 같게하는 것이 좋습니다. 100 %의 경우보기가 축소되면 높이가 매우 작습니다. 뷰가 확장되면 높이가 확장됩니다. 항상 브라우저의 사용 가능한 높이와 동일한 크기의 비율이되도록하고 싶습니다.

P. 375의 설정 크기는 브라우저에서 크기가 조정되지 않는 경우를 제외하고는 완벽하게 작동합니다.

이렇게 할 방법이 있습니까?

+0

높이 대신 최소 높이를보십시오. –

+0

그건 작동하지 않았다. Panel은 그 높이를 유지하고 브라우저가 작아지면 브라우저 스크롤바가 표시됩니다. –

+0

그래서보기를 보유하고있는 div의 스크롤 막대를 원하십니까? "overflow : scroll"은 내용이 div 자체보다 큰 경우 스크롤 막대를 표시해야합니다. 그렇다면 div의 정확한 높이를 찾는 문제입니다. –

답변

0

윈도우의 실제 크기를 가져 와서 그에 맞게 패널을 수정하는 window.onresize 이벤트를 등록해야합니다. 높이를 스타일로 설정합니다.

그래서 가장 좋은 방법은 최소 및 최대 값을 고려하여 창 크기에 따라 패널의 크기를 수정하는 방법을 만드는 것입니다. 일단 그 함수가 끝나면 뷰포트 디스플레이 크기 (읽기, 실제 크기 조절 또는 Windows 스크롤바를 활성화 한 항목)가 변경되면 시작되는 onresize 이벤트에 등록해야합니다.

완벽한 세계에서이 방법의 실행을 디버그/스로틀 (어쩌면 100ms마다)하면 마우스 및 창 경계를 사용하여 창 크기를 조정할 때 과도한 CPU로드를 피할 수 있습니다. 왜냐하면 브라우저에 따라 이벤트가 발생하기 때문입니다 이 크기 조정 중에 마우스가 움직이는 모든 단일 픽셀에서 발생합니다. 이는 비교적 자주 발생하며 느린 UI 응답을 유발할 수 있습니다.