jQuery根据另一个div的位置设置div的css值

时间:2014-10-13 12:49:18

标签: jquery css

我的页面上有一个名为' .nav-wrapper' - 根据后端的用户设置,此div的positino将位于多个位置之一。我想要做的是使用jQuery,确定这个div的顶部位置,如果它是一个特定值,则将margin-top值添加到不同的div。

例如,下面我试图说.nav-wrapper top position是0,将.header-wrapper-other的min-height更改为50px。这是我的代码,但是它什么都不做:

var MenuPosition = $('.nav_wrapper').css('top').val();
if (MenuPosition == 0) {
    $('.header-wrapper-other').css('min-height','50px');
};

以下是示例中两个div的css:

.header-wrapper-other {
background-attachment: fixed;
background-size: cover;
min-height: 200px;
}

.nav-wrapper {
padding: 10px 20px;
position: absolute;
top: 0px;
width: 100%;
z-index: 1000;
}

3 个答案:

答案 0 :(得分:2)

它应该是.css('top')而不是.css('top').val()

但是这会返回一个像XXpx这样的字符串,这可能不是你想要的。

您应该使用以下内容返回可用数字进行比较

var MenuPosition = $('.nav_wrapper').position();
if (MenuPosition.top == 0) {
    $('.header-wrapper-other').css('min-height','50px');
};

DEMO

答案 1 :(得分:1)

像这样,

将您的班级从 .nav_wrapper 更改为 .nav-wrapper ,因为在CSS中您正在设置样式.nav-wrapper并在jQuery中将其称为.nav_wrapper :)

此处的工作示例http://jsfiddle.net/u6Lrnpgj/

var MenuPosition = $('.nav-wrapper').css('top');

if (parseInt(MenuPosition) == 0) {
    $('.header-wrapper-other').css('min-height','50px');
}

你不需要val();它是从输入字段获取值:)

答案 2 :(得分:0)

.val()仅适用于inputtextarea

parseInt()使MenuPosition为整数。

var MenuPosition = parseInt($('.nav_wrapper').css('top'));