2013-09-23 83 views
0

我有一個相對定位的流體股利。在這個div裏面我有一個時間線,它由多個標籤組成,表示時間。當滾動條出現時,我需要刷新時間軸的位置。但我能想到的唯一事件是:捕捉顯示滾動條事件

$(window).resize(function(event) { 
    ... 
}); 

並且它不會觸發。它只有在我按下時纔會觸發,例如,Chrome中的f12才能打開開發工具。但如果我以自然的方式獲得滾動條(因爲很多內容),我無法弄清楚如何捕捉這個事件

+0

這個我quess的重複:http://stackoverflow.com/questions/2578046/scrollbar-appear-disappear-event-in-jquery – BobClaerhout

+1

這是因爲.resize()只觸發時整個可見窗口將被調整大小,例如,當顯示Chrome的開發人員工具時。做到這一點的正確方法是在您填充div時運行檢查。 – HodofHod

+0

那麼,我不填充div。但是如果滾動條出現,div的大小會發生變化 – Victor

回答

1

我做了一個jsfiddle,顯示了當垂直方向的寬度和隨機div的變化滾動條出現。這可以幫助你解決你的問題。

http://jsfiddle.net/kasperfish/GrZp4/3/

$(function() { 
    getinfo(); 
    $('#togglescroll').click(function(){ 
     $('#container').slideToggle("fast" , function(){ 
      getinfo(); 
     }); 

    }); 
}); 



function getinfo(){ 
    $('#view').html('body width: '+$("body").width()+'</br>'); 
    $('#view').append('red rectangle width: '+$("#view").width()+' (2px < body because of border 1px)</br>'); 
    if ($("body").height()>$(window).height()) { 
     $('#view').append('vertical scrollbar: yes');   
    }else{ 
     $('#view').append('vertical scrollbar: no'); 
    } 

} 
+0

其實我解決了我的問題以另一種方式。我忘記了我的窗口調整大小事件(我有一個內部條件),並認爲事件不會觸發。那麼,我刷新我在window.resize上絕對定位的div並且不關心滾動條。但無論如何感謝您的帖子,很高興知道 – Victor