我有一個相對定位的流體股利。在這個div裏面我有一個時間線,它由多個標籤組成,表示時間。當滾動條出現時,我需要刷新時間軸的位置。但我能想到的唯一事件是:捕捉顯示滾動條事件
$(window).resize(function(event) {
...
});
並且它不會觸發。它只有在我按下時纔會觸發,例如,Chrome中的f12才能打開開發工具。但如果我以自然的方式獲得滾動條(因爲很多內容),我無法弄清楚如何捕捉這個事件
我有一個相對定位的流體股利。在這個div裏面我有一個時間線,它由多個標籤組成,表示時間。當滾動條出現時,我需要刷新時間軸的位置。但我能想到的唯一事件是:捕捉顯示滾動條事件
$(window).resize(function(event) {
...
});
並且它不會觸發。它只有在我按下時纔會觸發,例如,Chrome中的f12才能打開開發工具。但如果我以自然的方式獲得滾動條(因爲很多內容),我無法弄清楚如何捕捉這個事件
我做了一個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');
}
}
其實我解決了我的問題以另一種方式。我忘記了我的窗口調整大小事件(我有一個內部條件),並認爲事件不會觸發。那麼,我刷新我在window.resize上絕對定位的div並且不關心滾動條。但無論如何感謝您的帖子,很高興知道 – Victor
這個我quess的重複:http://stackoverflow.com/questions/2578046/scrollbar-appear-disappear-event-in-jquery – BobClaerhout
這是因爲.resize()只觸發時整個可見窗口將被調整大小,例如,當顯示Chrome的開發人員工具時。做到這一點的正確方法是在您填充div時運行檢查。 – HodofHod
那麼,我不填充div。但是如果滾動條出現,div的大小會發生變化 – Victor