2013-08-18 50 views
0

#mydiv是一個可點擊的方框Div,如果點擊#mydiv,將添加一個類.openDivjQuery事件scrollTop

如果有類.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不同的硬編碼值。有沒有辦法讓它動態計算?謝謝!

回答

1

試試這個:

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

如果#mydiv有類openDiv然後帶走它的高度爲$(window).scrollTop(),否則僅返回$(window).scrollTop()

1

在jQuery中,您可以使用.height()方法找到每個對象的高度。我不知道在什麼地方100px的到來形式,但你可以通過$(「InsertASelectorHere」)替換它的高度()