2014-01-30 2 views
0

간단한 div가 있습니다. 브라우저 (Firefox 버전 26) 창이 축소되면 div의 표시 가능 영역이 부분적으로 표시되지 않습니다.style.clip이 비어 있습니다. div의 일부가 보이는지 알아야합니다.

특정 위치 (예 : 의 오른쪽 중간 가장자리)가 언제 표시되는지 알아야합니다.

놀랍게도 다음은 빈 값을 산출합니다. 문자열도없고 직사각형도 아니고 아무것도 없습니다. 이유를 알아낼 수 없습니다. 앞에서 설명한 문서와 예제에서는 style.clip이 요소의 보이는 부분의 위쪽, 오른쪽, 아래쪽, 왼쪽 값 을 포함하는 문자열을 반환해야 함을 나타냅니다.

예를 들어, 심지어 W3schools.com shows that.

여기 내 코드가 있습니다.

window.onresize = function(event) 
{ 
    console.log("Hi, we're about to get the clip rect for myDiv."); 
    console.log("myDiv clip rect is: " + document.getElementById('myDiv').style.clip); 
} 


    <div id="myDiv" style="height: 99%; display: inline-block; width: 99%; 
      background-color: red"></div> 

div (빨간색 배경)가 보입니다. 그러나 myDiv의 style.clip은 비어 있습니다., 문자열 없음, 아무 것도 없습니다. 내 "! DOCTYPE html"은 페이지 상단에 있습니다. 이것을 알아낼 수는 없습니다.

아이디어가 있으십니까? 그건 그렇고 : 여기에 자바 스크립트 라이브러리를 사용하지 않습니다, 그냥 순수 자연 자바 스크립트.

+0

'rect'스타일을 설정하지 않은 경우 반환 할 항목이 없습니다. 난 당신이 오해하고 있다고 생각, 그것은 마술처럼 요소의 어떤 부분에 대한 값을 반환하지 않습니다 당신이 특별히'rect' 스타일을 설정하지 않는 한. – adeneo

+0

div의 일부가 브라우저 창 밖에 있다고 말하는 것 같습니다. 즉, 브라우저를 확대하면 div가 완전히 보일 것입니다. 그렇다면이 스레드가 도움이 될 수 있습니다. http://stackoverflow.com/questions/5353934/check-if-element-is-visible-on-screen – BrettFromLA

답변

0

문제는 브라우저 창의 가로 스크롤 막대가 나타나더라도 브라우저 창의 너비를 줄이면 오른쪽으로 스크롤하면 거기에 데이터가 있더라도 빈 영역이 생성된다는 것이 었습니다. div의 하드 코드 된 너비를 설정하여이 문제를 해결했습니다. 또한 'scrollWidth'가 증가하면 div의 너비를 프로그래밍 방식으로 늘릴 수 있습니다.

관련 문제