Javascript 显示滚动条事件的捕获

Javascript 显示滚动条事件的捕获,javascript,jquery,Javascript,Jquery,我有一个相对定位的流体div。在这个分区中,我有一个由几个表示时间的标签组成的时间线。当滚动条出现时,我需要刷新时间线的位置。但我能想到的唯一事件是: $(window).resize(function(event) { ... }); 而且它不会开火。只有当我在chrome中按f12打开开发工具时,它才会启动。但是如果我以自然的方式获得滚动条(因为有很多内容),我就不知道如何捕捉这个事件了我制作了一个jsfiddle,显示了当垂直滚动条出现时主体的宽度和随机div的变化。这可以帮助你

我有一个相对定位的流体div。在这个分区中,我有一个由几个表示时间的标签组成的时间线。当滚动条出现时,我需要刷新时间线的位置。但我能想到的唯一事件是:

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

而且它不会开火。只有当我在chrome中按f12打开开发工具时,它才会启动。但是如果我以自然的方式获得滚动条(因为有很多内容),我就不知道如何捕捉这个事件了

我制作了一个jsfiddle,显示了当垂直滚动条出现时主体的宽度和随机div的变化。这可以帮助你解决你的问题

$(函数(){
getinfo();
$('#togglescroll')。单击(函数(){
$(“#容器”)。滑动切换(“快速”,函数(){
getinfo();
});
});
});
函数getinfo(){
$('#view').html('body width:'+$('body”).width()+'
'); $(“#视图”).append('红色矩形宽度:'+$(“#视图”).width()+'(2px'); 如果($(“正文”).height()>$(window.height()){ $(“#视图”).append('vertical scrollbar:yes'); }否则{ $(“#视图”).append('vertical scrollbar:no'); } }
I quess的重复:这是因为.resize()仅在整个可见窗口调整大小时触发,例如当显示Chrome的开发人员工具时。正确的方法是在填充div时运行检查。好吧,我不填充div。但是如果滚动条看起来可能与我用另一种方法解决问题的实际结果重复,则div的大小会改变。我忘记了窗口大小调整事件中的某些内容(我在其中有一个条件),并认为该事件不会触发。嗯,我在window.resize上刷新我的绝对定位div,不关心滚动条。但无论如何,谢谢你的帖子,很高兴知道
$(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'); 
    }

}