我想检查图像的高度(页面上有多个这样的元素)。如果高度大于66像素,则我想应用等于其高度一半的负顶边距。

以下代码不执行任何操作。我的if语句有什么问题?

if($('.topstories a.image img').height() > 66){
    var margintop = -0.5 * ($(this).height() - 66);
    $(this).css('margin-top', 'margintop');
}

最佳答案

我不知道其余的功能,但是您要遍历每个图像,则需要使用循环或each()。就像是:

$('.topstories a.image img').each(function(){
    if($(this).height() > 66)){
        var margintop = 0.5 * ($(this).height());
        $(this).css('margin-top', '-' + margintop);
    }
});


我认为您在数学运算符中减去66也会引起问题-如果图像高度为67,然后减去66,则得到1。1 * .5等于0,所以您看不到效果。

关于javascript - jQuery:根据if语句添加CSS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10208968/

10-10 01:24