リサイズのイベントはリサイズ中常に発生してしまうので、リサイズが完了した後に何らかの処理を行う方法をメモ。
サンプルコード
JavaScript
$(function() {
$(window).on('resize', function() {
var winWidth = $(window).width();
var winHeight = $(window).height();
console.log('幅:' + winWidth + '__高さ:' + winHeight);
});
});
通常時のデモページ
この場合、リサイズを行っている間ずっとconsoleを出力し続けます。
JavaScript
$(function() {
var resizeTimer = null;
$(window).on('resize', function() {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(function() {
// リサイズ完了後の処理
var winWidth = $(window).width();
var winHeight = $(window).height();
console.log('幅:' + winWidth + '__高さ:' + winHeight);
}, 200);
});
});
リサイズ完了後に処理を行うデモページ
setTimeoutを使用して、200ミリ秒後に処理を実行するようにします。
リサイズ中はclearTimeoutでsetTimeoutをキャンセルするので、リサイズが完了した200ミリ秒後に処理が実行されます。
コメントが承認されるまで時間がかかります。