1. ホーム
  2. ジャバスクリプト

[解決済み】「resize」イベントの「end」を待ち、その後にアクションを実行するには?

2022-04-02 14:27:21

質問

ということで、現在は以下のようなものを使っています。

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

しかし、これはリサイズ処理が行われている間、何度も呼び出されます。終了時にイベントをキャッチすることは可能でしょうか?

解決方法は?

私は、以下の推奨事項を実行したところ、うまくいきました。 http://forum.jquery.com/topic/the-resizeend-event

このコードは、彼の投稿のリンク&ソースを探さなくてもいいように、ここにあります。

var rtime;
var timeout = false;
var delta = 200;
$(window).resize(function() {
    rtime = new Date();
    if (timeout === false) {
        timeout = true;
        setTimeout(resizeend, delta);
    }
});

function resizeend() {
    if (new Date() - rtime < delta) {
        setTimeout(resizeend, delta);
    } else {
        timeout = false;
        alert('Done resizing');
    }               
}

sime.vidasさん、コードをありがとうございました。