-
ID:LQe9Hy さんの質問

ウインドウのリサイズ操作が終わった時にだけ実行するjavascript・jQueryの良い書き方は?

setTimeoutを使った書き方以外に良い方法はありますか?

=================================
var t = false;
$(window).resize(function() {
if (t !== false) { clearTimeout(t); }
t = setTimeout(function() {
console.log(’resized’);
}, 100);
});
=================================
※ 追記2013.12.25
ブラウザ ウインドウサイズのことです。

※ 追記2013.12.26
皆様回答ありがとうございました。
コメ主4 ID:tj4CqSv9YK55 の方が仰るとおり、DOM操作やGPU処理に関わることでない為、負荷を気にするようなものでも無いとは思います。
重ね重ねお礼申し上げます。ありがとうございました。

みんなの回答 4 件

ID:x4nKfV さんの回答

jQueryに詳しいかたどうか私をお助けください。

ID:LQe9Hy

お助けください。

ID:ilIwtQ さんの回答

resizeイベントが発生した後の、最初のmouseupイベントを取ればいんじゃない?

ID:LQe9Hy

連続で発生するresizeイベントを回避する方法って無いかな。なるべく負荷を低くしたいのですよ。
書き忘れで申し訳ないけど、変更するのはブラウザのウィンドウサイズになるので、それを変更するときマウスアップイベントって取得できたんだっけ?

ID:LQe9Hy さんの回答

回答が付かずに流れていくー。

ID:tj4CqS さんの回答

存在しません。
また、構想として挙げているsetTimeoutがベストプラクティスだと思います。

負荷を気にされているようですが、resizeイベントの負荷はスペックやブラウザを気にするようなものではありませんし、実際にconsole.logで調べてみれば分かると思います。

ちなみにJavaScript処理でネックになるものの多くはGPU処理の肩代わりやDOM操作です。

最終更新日:2013-12-25 (5,460 views)

関連するトピックス

ページ上部に戻る