如果元素宽度超过80%

时间:2014-01-10 11:47:03

标签: jquery width

请告诉我,我怎样才能正常运作

var $photoblock = $(".element img");
if ($photoblock).width() > 80%){
$photoblock.css({width: 80%, max-width: 'none'});
} else {
$photoblock.css({width: auto, max-width: 100%});
});

怎么会这样?

3 个答案:

答案 0 :(得分:3)

尝试这样的事情

var $photoblock = $(".element img");
var per = $photoblock.parent().width() * 0.8;
if ($photoblock.width() > per) {
    $photoblock.css({
        width: '80%',
        'max-width': 'none'
    });
} else {
    $photoblock.css({
        width: 'auto',
        'max-width': '100%'
    });
}

$photoblock.width()将以像素为单位返回宽度,而不是百分比。因此,你需要找出80%的父母,然后需要比较它。

答案 1 :(得分:1)

.width()没有给出%的宽度,所以将它与父级的宽度进行比较,也没有其他语法问题

var $photoblock = $(".element img"),
    $parent = $photoblock.parent();
if ($photoblock).width() > $parent.width() * .8) {
    $photoblock.css({
        width: '80%',
        'max-width': 'none'
    });
} else {
    $photoblock.css({
        width: 'auto',
        'max-width': '100%'
    });
});

答案 2 :(得分:1)

您需要获取css宽度(如果以百分比指定),然后解析它以获取可用于计算或比较的值:

if (parseInt($photoblock.css('width')) > 80){..

否则,将其与父母宽度进行比较(如其他海报所示):

if ($photoblock).width() > $parent.width() * .8) { ...