2013-03-04 2 views
4
내가 대답하는 이미지의 높이 찾아 다음 jQuery를 가진

:CSS 속성에 jQuery를 변수를 사용하는 방법

 $(document).ready(function() { //Fires when DOM is loaded 
      getImageSizes(); 
      $(window).resize(function() { //Fires when window is resized 
       getImageSizes(); 
      }); 
     }); 
     function getImageSizes() { 
      $("#slideshow img").each(function() { 
       var $height = $(this); 
       console.log($height.height()); 

      }); 

     } 

을 그리고 내 목표는 사업부의 높이를 지정하려면 $ 높이 변수를 사용하는 것입니다 슬라이드 쇼의 ID와 함께.

은 내가 이것을 사용할 수 있습니다 가정

$('#slideshow').css({'height': $height + 'px;'}); 

을가 (어떤 높이가 지정되지 않은) 작동하지 않습니다하지만. 내가 놓친 거지 뭔가

 $(document).ready(function() { //Fires when DOM is loaded 
      getImageSizes(); 
      $(window).resize(function() { //Fires when window is resized 
       getImageSizes(); 
      }); 
     }); 
     function getImageSizes() { 
      $("#slideshow img").each(function() { 
       var $height = $(this); 
       console.log($height.height()); 

       $('#slideshow').css({'height': $height + 'px;'}); 
      }); 

     } 

있습니까 :

는 그래서 같은 위의 라인을 포함?

+0

jsfiddle에서 이것을 볼 수 있습니까? – Duniyadnd

+1

'# slideshow '의'height '는 마지막 이미지의 높이가 될 것입니다. 그래서'$ ("# slideshow img")'높이의 마지막 이미지가 10이면, 그것은 슬라이드 쇼 높이가 될 것입니다. –

+0

아직 확실하지 않습니다. 좋은 소식은 각 이미지의 높이가 같아서 먼저 반응 형 이미지의 높이를 찾은 다음 모든 뷰포트에서 좋게 보이는 상수를 추가하거나 추가 비율을 추가하는 것입니다. –

답변

4

$height.height()을 로깅하지만 CSS에서는 $height 만 사용합니다. 당신이 당신의 변수 나은라는 이름의 경우

, 그것은 쉽게 될 것입니다 : P

var $height = $(this).height(); 
$("#slideshow").css({"height":$height+"px"}); 

또는 내 취향을 :

 function() { 
      var $height = $(this); 
      console.log($height.height()); 

      $('#slideshow').css({'height': $height + 'px;'}); 
     } 

:

document.getElementById('slideshow').style.height = this.height+"px"; 
+0

성능 이외의 js 버전 환경 설정에 대한 이유가 무엇입니까? : O – Jashwant

+0

성능이 충분한 이유라고 생각합니다. 나는 8Kb가 많은 기억이었던 날에는 주변에 없었을 지 모르지만, 당신은 나의 집착으로 그것을 알지 못할 것입니다! –

+0

예, 그렇습니다. 나는 단지 호기심이었고 내가 새로운 것을 배울 수 있다면 생각하고 있었다. – Jashwant

1

$height은 jQuery 변수입니다. .height()을 호출하여 높이를 알아야합니다.

$('#slideshow').css({'height': $height.height() + 'px'}); 

또는 실제 높이를 대신 변수로 저장할 수 있습니다.

var height = $(this).height(); 
$('#slideshow').css({'height': height + 'px'}); 
+0

도움 주셔서 감사합니다. 그것은 함수 getImageSizes()처럼 보인다; 페이지로드시 올바르게 시작되지 않습니다. 하지만 지금은 크기를 올바르게 작동합니다. 콘솔은 페이지로드시 값 0을보고합니다. 어떤 아이디어? –

+0

jQuery.ready 함수 안에 함수를 넣으십시오. – Bijan

1

당신은 그것을 확인하여 변수 $height

에 대한 jQuery 오브젝트 $(this)을 저장 : var $height = $(this).height();를 만하면됩니다.

+0

도움 주셔서 감사합니다. 그것은 함수 getImageSizes()처럼 보인다; 페이지로드시 올바르게 시작되지 않습니다.하지만 지금은 크기를 올바르게 작동합니다. 콘솔은 페이지로드시 값 0을보고합니다. 어떤 아이디어? –

1

문제는 이벤트 핸들러에와 연결된 $height (jQuery 개체)을 시도하고 있습니다.(문자열). 이것은 문자열 '[object Object]px;'으로 끝납니다. 이것은 분명히 원하는 것이 아닙니다. 대신 높이 값을 사용해야합니다. 이것은 내가 원하는 것이라고 생각합니다 :

 function() { 
      var height = $(this).height(); 
      console.log(height); 

      $('#slideshow').css({'height': height + 'px'}); 
     } 
+0

도움 주셔서 감사합니다. 그것은 함수 getImageSizes()처럼 보인다; 페이지로드시 올바르게 시작되지 않습니다. 하지만 지금은 크기를 올바르게 작동합니다. 콘솔은 페이지로드시 값 0을보고합니다. 어떤 아이디어? –

관련 문제