试图改变'margin-top'属性

时间:2011-09-02 15:03:48

标签: javascript jquery css

这就是我要做的事情:

$(function(){           
  $('div.item').css('margin-top',-(closest('img').height())/2+'px'); 
});

我想要'<div class="item"'> 获得style="margin-top:XXXXXX; top:50%" 其中'XXXXXX'等于(('div.item a img').height())/2

=============================================== =======

编辑:(已解决) 感兴趣的人的最终代码:

<script type="text/javascript">

$(function(){
theWindow.resize(function() {
$('div.item').each(function(i){          
  $(this).css('top',(($(window).height())/2)-(($(this).first('img').height())/2)+'px'); 
});
}).trigger("resize");
});    
</script>

(我只使用top属性而不是top + margin-top) 谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

我认为这可能就是您所需要的,特别是如果您有多个div.item

$('div.item').each(function(){
    var r = $(this).find('img').first().height();
    $(this).css('margin-top', r/2 + 'px'); 
}); 

修改

您需要.find() img,然后选择.first()

示例:http://jsfiddle.net/jasongennaro/JNMhC/3/

答案 1 :(得分:0)

据我所知,你正试图做这样的事情:

$(function(){           
  $('div.item').css('margin-top',-($('div.item').closest('img').height())/2+'px'); 
});

但图像选择器取决于你的html配置 如果你发布一些html标记,maby我可以提供更好的解决方案。