【问题标题】:Catch showing scrollbar event捕获显示滚动条事件
【发布时间】:2013-09-28 18:52:13
【问题描述】:

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

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

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

【问题讨论】:

标签: javascript jquery


【解决方案1】:

我做了一个 jsfiddle 显示当垂直滚动条出现时 body 的宽度和随机 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 并且不关心滚动条。但无论如何感谢您的帖子,很高兴知道
猜你喜欢
  • 1970-01-01
  • 2014-02-14
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多