使用JS CSS应用减去上边距

时间:2014-08-26 11:58:40

标签: javascript jquery html css

我正在使用JavaScript计算元素的高度,然后我将该高度作为padding-top应用于另一个元素,如下所示:

 $(window).on("ready resize", function () {
        if (window.innerWidth > 1024) {
            var pageTop = $("#header.header-fixed .content").outerHeight() + "px";
            $("#page .topSection").css("padding-top", pageTop);
        } else {
            var pageTop = $("#secondHeader").outerHeight() + "px";
            $("#page .topSection").css("padding-top", pageTop);
        }
    });

我的问题是,我如何将这个高度应用为margin-top" - "同样的元素? 例如,如果#header高度为100px; .topSection的margin -top将为-100px

------------- 更新 -------------------------- -------------

谢谢!以下答案有帮助!

我遇到的另一个问题是应用减去边距的结果! 这是我目前使用的代码......

//Fixed header optimizer
    $(window).on("ready resize", function() {
        if (window.innerWidth > 1024) {
            var pageTop = $("#header").outerHeight() + "px";        
            $("#page .topSection").css({"padding-top": pageTop, "margin-top": "-"+pageTop});
        } else {
            var pageTop = $("#secondHeader").outerHeight() + "px";
            $("#page .topSection").css({"padding-top": pageTop, "margin-top": 0});
        }
    }); 

如果#header有一个.header修复的类,怎么能让它不应用这些边距?

4 个答案:

答案 0 :(得分:4)

尝试将pageTop字符串与“ - ”连接:

$(window).on("ready resize", function () {
        if (window.innerWidth > 1024) {
            if(!$('#header').hasClass("header-fixed")) {
                var pageTop = $("#header").outerHeight() + "px";
                $("#page .topSection").css({"padding-top": pageTop, "margin-top": "-" + pageTop});
            }
        } else {
            if(!$('#header').hasClass("header-fixed")) {
                var pageTop = $("#secondHeader").outerHeight() + "px";
                $("#page .topSection").css({"padding-top": pageTop, "margin-top": "-" + pageTop});
            }
        }
    });

答案 1 :(得分:3)

.css({"padding-top": pageTop, "margin-top": "-"+pageTop})

答案 2 :(得分:2)

尝试以下代码,

$(window).on("ready resize", function () {
    if (window.innerWidth > 1024) {
        var pageTop = $("#header.header-fixed .content").outerHeight() + "px";
        $("#page .topSection").css({"margin-top": "-" + pageTop, "padding-top" :  pageTop});
    } else {
        var pageTop = $("#secondHeader").outerHeight() + "px";
        $("#page .topSection").css({"margin-top": "-" + pageTop, "padding-top" : pageTop});
    }
});

答案 3 :(得分:2)

使用此代码

$("#page .topSection").css({"padding-top": pageTop,"margin-top":"-"+pageTop});

而不是

$("#page .topSection").css("padding-top", pageTop);