0

#mydiv是一个可点击的盒子Div,点击.openDiv会添加一个类#mydiv

如果有课.openDiv

if($('#mydiv').hasClass('openDiv')){
 $(window).scrollTop(); //value is 300px
}

如果只是加载页面(否.openDiv

$(window).scrollTop(); //value is 200px

所以我的变量就像

if($('#mydiv').hasClass('openDiv')){
  thisTop =  $(window).scrollTop() - 100;
}else{
  thisTop =  $(window).scrollTop() 
}

如您所见,我将其设置为100硬编码的不同值。有没有办法让它动态计算?谢谢!

4

2 回答 2

1

在 jQuery 中,您可以使用 .height() 方法找到每个对象的高度。我不知道 100px 来自哪里,但您可以将其替换为 $('InsertASelectorHere').height()

于 2013-08-18T22:42:35.710 回答
1

尝试这个:

var div = $('#mydiv'), scrollTop = $(window).scrollTop();
thisTop = div.hasClass('openDiv') ? scrollTop - div.height() : scrollTop;

如果#mydiv有类openDiv,则从 中删除它的高度$(window).scrollTop(),否则返回$(window).scrollTop()

于 2013-08-18T22:52:25.580 回答