jQuery事件scrollTop

时间:2013-08-18 22:37:14

标签: javascript jquery

#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不同的值硬编码。有没有办法让它动态计算?谢谢!

2 个答案:

答案 0 :(得分:1)

在jQuery中,您可以使用.height()方法找到每个对象的高度。我不知道100px在哪里形成,但你可以用$('InsertASelectorHere')代替它.tiight()

答案 1 :(得分:1)

试试这个:

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

如果#mydivopenDiv类,则从$(window).scrollTop()取走它的高度,否则只返回$(window).scrollTop()