如何动态地减去Div高度的百分比

时间:2014-09-28 17:08:52

标签: javascript jquery

有这样的代码:

    $("button").on("click", function () {
        var rtop = $("#toprow").height();
        var rbot = $("#botrow").height();
        //rtop = rtop - 10%;
        console.log(rtop);
        var newDiv = $("<div />", {
            "class": "chartBox",
            "id": "chart1"
        }).css({
            "background-color": "yellow",
            "font-weight": "bolder",
            "height": rtop+"px",
            "width" : "100%"
        }).appendTo("#toprow");
    });

我需要从.rtop的高度减去10%然后将其应用到.chatBox css。我所做的是

rtop = rtop - 10%;

但这不起作用。你能告诉我怎么解决这个问题吗?

由于

3 个答案:

答案 0 :(得分:1)

Javascript没有百分比运算符:

rtop = rtop - ((rtop / 100)*10);

百分比来自“百分比”(百分之一是拉丁语)。所以你有“10从100”。 ;)

答案 1 :(得分:1)

如果你总是使用百分比,你可能会决定为它们编写函数,以使代码更具可读性。

function percent(x, y) {
    return (y * x) / 100;
}

function add_percent(x, y) {
    return percent(x, 100 + y);
}

function sub_percent(x, y) {
    return percent(x, 100 - y);
}

然后

// 10 percent of 456 is
percent(456, 10); // 45.6

// 456 subtract 10 percent is
sub_percent(456, 10); // 410.4

这些也可能有用

function undo_percent(x, y) {
    return (x * 100) / y;
}

function undo_add_percent(x, y) {
    return undo_percent(x, 100 + y);
}

function undo_sub_percent(x, y) {
    return undo_percent(x, 100 - y);
}

所以

undo_sub_percent(410.4, 10); // 456

我们也有

undo_percent(410.4, 456); // 90
// i.e. 410.4 is 90 percent of 456

答案 2 :(得分:0)

当你减去10%时,剩下的是90%,可以乘以90/100 = 0.9

rtop = rtop * 0.9