Поймать показ полосы прокрутки

0

У меня есть жидкий div с относительным позиционированием. Внутри этого div у меня есть временная шкала, состоящая из нескольких меток, указывающих время. Когда появляется полоса прокрутки, мне нужно обновить положение временной шкалы. Но единственное событие, о котором я могу думать, это:

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

и он не срабатывает. Он срабатывает, только если я нажимаю, например, f12 в хроме, чтобы открыть инструменты для разработки. Но если я получаю полосу прокрутки естественным образом (потому что много контента), я не могу понять, как поймать это событие

Теги:

1 ответ

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 и не заботится о полосе прокрутки Но все равно спасибо за ваш пост, приятно знать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню