2016-08-16 3 views
5

크기를 변경하면 높이가 업데이트되지 않습니다. 일단로드가 높이를 설정하면 변수를 업데이트하더라도 업데이트되지 않습니다.jquery resize 후 요소 높이가 업데이트되지 않습니다.

높이를 설정 한 선을 제거하면 변수가 올바르게 업데이트되지만 일단 높이가 설정되면 아무 것도 수행하지 않습니다.

어디로 잘못 갔습니까?

var hero_height = $('.hero-image').outerHeight(); 
console.log('heroHeight: ' + hero_height); 

$(document).ready(function() { 
    $(window).load(function() { 

     $('.hero-image').css('height', hero_height); 

    }); 

    $(window).resize(function() { 

     if (hero_height !== $('.hero-image').outerHeight()) { 
      $('.hero-image').css('height', hero_height); 
     }; 

     hero_height = $('.hero-image').outerHeight(); 
     console.log('heroHeight: ' + hero_height); 

    }); 
}); 

여기 JS 바이올린
https://jsfiddle.net/5c1za6xa/

+0

이미지에 % 또는 em 속성을 사용할 수없는 특별한 이유가 있습니까? 나는 당신이 자바 스크립트 (또는 그 문제에 대한 jQuery)가 필요하다고 생각하지 않으며이 방법을 구현하려고하면 두통을 줄 것입니다. 예를 들어 http://learnlayout.com/percent.html을 참조하십시오. – nmg49

+0

영웅 이미지에 이미 백분율 높이를 사용하고 있으며 의도 한대로 작동합니다. 나는 단순히 자신의 주소 표시 줄을 숨기는 휴대폰에 대한 수정을 추가하려고합니다. 검색 주소창이 숨겨지면 창 높이가 더 커지므로 크기가 커지면 내용이 강제로 점프됩니다. 솔직히 말해서 나는이 솔루션이 작동하지 않을 것임을 깨달았습니다 ... 주소 표시 줄이 숨겨지면 높이가 jquery를 통해 업데이트되기 때문에 ... 흠 ... – KINKWILDE

+0

아, 명확히 해 주셔서 감사합니다. – nmg49

답변

1

되어 윈도우 크기 조정 기능에 포함 var hero_height = $('.hero-image').outerHeight();.

$(window).resize(function() { 
    var hero_height = $('.hero-image').outerHeight(); 
    if (hero_height !== $('.hero-image').outerHeight()) { 
     $('.hero-image').css('height', hero_height); 
    }; 

    hero_height = $('.hero-image').outerHeight(); 
    console.log('heroHeight: ' + hero_height); 
}); 
+0

죄송합니다. 아직 해결되지 않았습니다. 일하지 마라. – KINKWILDE

+0

코드 스 니펫에 코드를 업로드하여 더 좋은 아이디어를 얻을 수 있습니까? –

+0

기존 질문이 JS 피들로 업데이트되었습니다. – KINKWILDE

0

너는 이것을 생각하지 못했습니다! 이것을 위해 jQuery가 전혀 필요하지 않습니다. 단지 CSS media queries입니다.

여기서 예

nav { 
    display: block; 
} 

@media screen and (max-width: 480px) { 
    nav { 
    display: none; 
    } 
} 

이 (기술적 또는 미만 480 픽셀의 화면 높이 아무것도)를 탐색 모바일 기기 바를 숨길 수있다. 당신은 당신의 필요에 맞게 최대 너비와 스타일을 분명히 바꿀 수 있습니다. 이것은 (이다 부여하는이 자바 스크립트를 지원하지 않는 사용자/장치를 작동 할 수 있도록 그것은,이

  • 그것은 자바 스크립트를 필요로하지 않는 읽기 방법 쉽게

    1. 이유에서 jQuery를 훨씬 우수 요즘 거의 아무도 없음). 하지만 자바 스크립트를 사용하지 않으면 페이지 로딩 시간이 엄청나게 빨라집니다.
    2. 일반적으로 (CSS3가 출시 된 이래로) 스타일을 조정하기 위해 자바 스크립트 (또는 jQuery)를 사용할 필요가 거의 없습니다. 따라서 페이지의 스타일/모양을 변경하려고하므로 CSS를 사용해야합니다. JS를 스타일이 아니라 웹 페이지의 동적 기능으로 남겨 두십시오.
  • +0

    그리고 당신은 완전히 상황을 잘못 판단했습니다 - 나는 nav로 아무 것도하지 않습니다 ... 위의 내 대답은 전화기의 기본 UI에 대한 것입니다. URL을 입력하는 주소 표시 줄을 알고 있습니까?그것은 스크롤에 자동으로 숨길 것입니다 ... 따라서 나는 왜 영웅 이미지가 점프하는 것을 막을 수있는 해결책을 생각해 냈습니다. – KINKWILDE

    +0

    KINKWILDE, 당신은 더 나은 질문을 명확히해야합니다. 제목이 정확하게 귀하의 질문을 전달하지 않으며 귀하의 설명이 모호하고 혼란 스럽습니다. – nmg49

    관련 문제