Initial Site

Initial Site

Initial Site

jQuery のちょこっとメモ

  • ササキ2015/02/26 12:44
jQueryメモ

制作していてこんなことしたいけど、どうやるんだ?って思ったとき調べたことのメモです。

イベントハンドラ(window.load とか reseize)を同時に指定したい(=同じ処理したい)!

レスポンシブサイトとかで使わないといかんって場面結構あると思います

ひとつひつ書くとこんな風に、処理A を三回も書かないといけない

$(function(){
$(window).load(function(){
//処理A
});
$(window).scroll(function(){
//処理A
});
$(window).resize(function(){
//処理A

});

});

けど、まとめて各以下の記述なら一回で済む

$(function(){
$(window).on('load scroll resize',function(){
//処理A
});
});

ウインドウの処理が終わったときだけに、resize 処理をいれたい
ふつうに書くと以下の記述で問題なくやってしまうのですが、同ページ内にいろいろな処理が書かれているとウインドウをリサイズしている間も処理が動いて余計な負荷がかかってしまいます。

$(window).resize(function() {
//処理B
});

そこで

リサイズが終わったときだけ処理をする方法に変えれば、よろしい事になるのでは


var timer = false;
$(window).resize(function() {
if (timer !== false) {
clearTimeout(timer);
}
timer = setTimeout(function() {
// 処理B
}, 200);
});

最後に書いてある 200 って数字は、 200ミリ秒(1秒=1000ミリ秒)後に 処理B を行うっていう時間の指定です。


この記事の作者

アバター
ササキ


総記事本数:23

コメントをどうぞ

おすすめ記事

  1. 2af1a7d9bbe73319a6c346c407cdefbf_m
    リモートワークに移行します
  2. ウィルス画像
    横浜のブラック企業 Initial Site(イニシャルサイト)からコロナウイルスで考えたこと。B…
  3. E5DxwzVgVHYHr411581668296_1581668370
    わたしは公家ではありませんでした(多分)
  4. 1b8493ba94ff68762824c3c7274b3128-e1499313795652
    イオンの保存容器はジップロック超えた!?※主観的視点