所以,我在<ul><li><a> <img> </a></li></ul>
中有X个垂直居中的图像(下面jquery中的类名是实际的<img>
)。
这样做很有效但是......它只取第一个值并将其应用于其余的图像,导致第一个值居中而其他值不居中。
我可能会补充说,所有图像都有不同的高度和宽度。只需在锚点上使用text-align: center;
$(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);
});
现在已经盯着这个很长一段时间了,我肯定错过了一些明显的东西。
答案 0 :(得分:2)
如果图像需要不同的值,则需要循环显示它们。尝试使用$('.tv-list-channel-logo').each( function... )
。在.each
内,this
指的是当前元素。
编辑:以下是.each
:
// `.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`
} );