2013-10-17 4 views
0

저는 두 가지 크기 중 하나가 되길 원하는 div가 있습니다. 브라우저 윈도우의 높이가 소정 높이보다 더 작다브라우저 높이가 지정된 픽셀 수보다 작 으면 div 높이를 변경하는 방법은 무엇입니까?

  • 경우, 그것은
  • 그러나 DIV위한 작은 높이를 사용하여 브라우저 창 높이가 소정의 높이보다 크다면, 그때는 DIV
  • 대해 더 큰 높이를 사용

다음 코드를 시도했지만 작동하지 않습니다. 도움이 필요해. 지금까지이 http://jsbin.com/oFIRawa/1

그리고 여기에 코드입니다 : 여기

는 jsbin입니다

page.html을

<div id="theDiv">&nbsp;</div> 

있는 style.css

#theDiv { 
    background: #000; 
    border: 2px solid #222; 
    width: 300px; 
    height: 400px; 
    margin: 50px auto 0 auto; 
} 

script.js

$(document).ready(function() { 
    // call the method one time 
    updateWindowSize(); 
    // subscribe the method to future resize events 
    $(window).resize(updateWindowSize); 

    // variables 
    var updateWindowSize = (function(){ 
     var minAllowedWindowHeight = 500; 
     var largerDivHeight = 400; 
     var smallerDivHeight = 300; 

     // actual updateWindowSize function 
     return function(){ 
      var winHeight = $(window).height(); 
      var newHeight = winHeight < minAllowedWindowHeight ? smallerDivHeight : largerDivHeight; 
      $('#theDiv').height(newHeight); 
     }; 
    })(); 
}); 

답변

5

당신은 CSS에서 나의 좋은 선생님이 작업을 수행 할 수 있습니다. 반응 형 디자인이라고 불립니다!

사람이 (360 픽셀 최대 폭 같은 것을) 모바일 장치를 사용할 때 그것이 우리를 알 수 있기 때문에 더 일반적으로 최대 폭에 사용되는
@media (max-height:500px) { 
    Enter special css conditions for 500px height. 
} 

@media (max-height:200px) { 
    Enter special css conditions for 200px height. 
} 

, 우리는 모바일에 좋은 보는 우리의 페이지를 수정할 수 있습니다. 멋진 자바 스크립트가 필요하지 않습니다!

+0

나는이를 사용하는 방법을 이해하지 않습니다. 어디에서 최소 WINDOW 높이를 정의하고 특정 ID를 어디에 정의합니까? – Accelerator

+0

여기에 왜 두 가지 규칙이 다른지 이해가 안 되니? 너 하나 필요해? – ediblecode

+0

이 코드를 .css 파일에 넣습니다. 그것은 자바 스크립트가 아니라 CSS입니다. 또는 인덱스 페이지의 스타일 태그에 넣을 수 있습니다. 나는 방금 두 가지 규칙을 하나의 예로서 두었습니다. 여기에 당신을위한 간단한 예가 있습니다! [jsfiddle link] (http://jsfiddle.net/z5W9j/), 오른쪽 하단 창 크기를 조정하여 높이에 따라 상자 색상을 변경하십시오. 당신이해야 할 일은 (200px)에서 일어나는 높이를 변경하고 색상 대신 div의 크기를 변경하는 것입니다. –

2
var threshhold; 
var smallerHeight = 50; 
var largerHeight = 100; 

if ($(window).height() < threshold) 
    $('#theDiv').height(smallerHeight); 
else 
    $('#theDiv').height(largerHeight); 

바이올린

Demo

+0

이것은'threshold_ 변수 이름 대신에'minAllowedWindowHeight'라는 변수 이름을 사용한다는 점을 제외하고는 똑같은 기능을합니다. 또한 'threshhold'에 대한 숫자를 정의하는 것을 잊었습니다. 어쨌든, 이것은 내 질문에있는 것과 똑같은 것이므로 물론 작동하지 않습니다. – Accelerator

+0

@ user2845197 오류를 살펴 보았습니까? 오류가 있습니다. 이것이 작동하지 않는 이유입니다. – ediblecode

+0

이것은 jsfiddle에서 작동합니다! 고맙습니다; 그들이 자바 스크립트가 없어도 더 단순 해졌 기 때문에 유일한 답은 다른 대답을 받아 들여야 만했습니다.하지만 당신의 솔루션은 작동하지 않습니다. 너무 나쁘지 만 두 가지 최상의 답변을 선택할 수 없습니다! 최소한 나는 당신을 뽑았다 : – Accelerator