Могу ли я вызвать функцию, когда я перестаю "изменять размер" окна?

Возможный дубликат:
Событие изменения размера JavaScript запускается несколько раз при перетаскивании маркера изменения размера

Пытался:

$(window).bind('load resize', function (e) {
    console.log("resized");
});

но он писал "изменен размер" для каждого маленького движения окна. Могу ли я вызвать функцию (в этом примере, console.log()) только после завершения (остановки) изменения размера окна?

Спасибо!

2 ответа

Решение

Может быть, вы просто определяете, что изменение размера завершено, если в течение следующих 100 мс не будет нового события изменения размера. Как это:

var resizeEnd;
$(window).bind('resize', function(e) {
    clearTimeout(resizeEnd);
    resizeEnd = setTimeout(function() {
        console.log("resized");
    }, 100);
});

Изменение размера будет непрерывно срабатывать, пока окно изменяется, и не будет срабатывать, если оно не изменяется. Таким образом, у вас нет способа узнать, когда непрерывное изменение размера прекратилось, поэтому придерживайтесь логики, которая срабатывает при срабатывании события изменения размера.

Другие вопросы по тегам