2012-04-13 2 views
0

의 정렬 따라서, <ul><li><a> <img> </a></li></ul> (아래 jquery의 클래스 이름은 실제 <img>입니다.)에 X 개의 이미지가 세로로 가운데에 표시됩니다. 이것은 beatufully 작동하지만 ... 그것은 단지 첫 번째 가치를 소요하고 나머지 이미지에 적용, 결과 가운데 하나와 다른 사람이 아닌 결과.Jquery - 부모 높이를 사용한 세로 가운데 맞춤이 작동합니다.

모든 이미지의 높이와 너비가 다르다고 추가 할 수 있습니다. 폭은 지금과 같은, 단순히

$(window).load(function(){ 
    var parent_height = $('.tv-list-channel-logo').parent().height(); 
    var image_height = $('.tv-list-channel-logo').height(); 
    var top_margin = (parent_height - image_height)/2; 
    $('.tv-list-channel-logo').css('margin-top' , top_margin); 
}); 

지금 꽤 많은 시간이 쳐다 되었습니까 anchortag에 text-align: center;를 사용하여 알아서하고 나는 확실히 뭔가를 분명 실종.

+0

당신이 절대적으로 상대 용기의 내부를 위치 시도 유무 : 여기 .each의 예입니까? – Dutchie432

+0

예, 있습니다. 그러나 첫 번째 게시물에는 높이와 너비가 다른 이미지가 있어야합니다. – Dennis

+0

내 의견을 'Ryan P'의 답변과 함께 사용하십시오. 각 이미지를 반복하고'each '를 사용하여이 계산을 수행하십시오. – Dutchie432

답변

2

이미지에 다른 값이 필요한 경우 반복해야합니다. $('.tv-list-channel-logo').each(function...)을 사용해보세요. 안에 .each, this 현재 요소를 말합니다.

편집 :

// `.each` takes each selected element and calls the callback on each one 
$('.tv-list-channel-logo').each(function() { 
    // `this` refers to the current .tv-list-channel-logo element 
    var parent_height = $(this).parent().height(); 
    var image_height = $(this).height(); 
    var top_margin = (parent_height - image_height)/2; 
    $(this).css('margin-top' , top_margin); 
    // I just replaced all instances of `'.tv-list-channel-logo'` with `this` 
}); 
+0

이것이 의미하는 바가 아닌지 확실하지 않지만 작동하지 않습니다. 'var image_height = $ ('.tv-list-channel-logo'). 각(). 높이();' – Dennis

+0

.each는 함수 콜백을받습니다. docs를보십시오 : http://api.jquery.com/each/ –

+0

나는 확실히 내 두뇌에 가치있는 것을 긴장 시켰습니다. 나는이 것을 알아낼 수 없다 ... – Dennis

관련 문제