2013-06-03 4 views
0

브라우저 뷰포트 크기를 가져 오려고합니다. 560) : 페이지가 처음 jQuery(function() { .. });)에서 (로드,이 두 가지가 올바른 값 (예를 보여 javascript - 올바르지 않은 뷰포트 크기

console.log($(window).height()); 
console.log(document.documentElement.clientHeight); 

하지만 같은 일을 수행 할 때 나중에, 그것은 전체 docoument의 높이를 (보여줍니다 예 : 11675).

많은 HTML과 JS가 있는데, 무슨 일이 일어나고 있는지 파악하는 데 시간이 걸릴 것입니다. 궁금한 점이 있습니다. 그렇다면 누구나 이와 같은 것을 볼 수 있습니까? 뷰포트의 정확한 크기를 얻을 수 있습니까? 모든 Google 조회수는 값을 검색하는 올바른 방법임을 보여줍니다.

참고 : Chrome을 사용하고 있습니다.

+0

http://borbit.github.io/jquery.viewport/를 보셨습니까? – haim770

+0

관련 없음 ... –

+0

인용구 : "나중에 동일한 일을 할 때 ** 전체 문서의 높이를 나타냅니다 (예 : 11675)." 어떤 표현이 당신이 언급 한 '그것'이라고 설명하십시오. 두 번째 명령문은 [정의] (https://developer.mozilla.org/en-US/docs/Web/API/element.clientHeight)로 전체 문서 높이를 반환해야하지만 첫 번째 명령문은 올바른 뷰포트를 제공해야하지만 . – Mutahhir

답변

1

최근 내 프로젝트 중 하나에서 같은 문제가 발생했습니다. 나는이 이상한 버그를 파고 분리 시간이 없었다, 그리고 내가 제대로 뷰포트 크기 얻기 위해 (this answer에서 적응)이 기능을 사용하여 종료 : 제가 테스트 한 바로는

var getViewportSize = (function(){ 
     var w = window, 
      d = document, 
      e = d.documentElement, 
      g = d.getElementsByTagName('body')[0]; 

     return function(){ 
      return { 
       w : Math.max(w.innerWidth || e.clientWidth || g.clientWidth, app.config.minWidth), 
       h : Math.max(w.innerHeight|| e.clientHeight|| g.clientHeight, app.config.minHeight) 
      }; 
     } 
    })(); 

을, jQuery를 반환 된 콘솔이나 다른 브라우저 확장/툴바가 뷰포트 공간 중 일부를 차지할 때 크기가 잘못되었습니다.
jQuery 2.0과 같은 성숙한 라이브러리에 이러한 종류의 버그가 있다고 생각하기 때문에이 기능이 도움이 되었기를 바랍니다. 그러나이 기능을 이해하려고 노력하고 있습니다.

관련 문제