我有一个相对定位的流体股利。在这个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