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 を行うっていう時間の指定です。


コメントをどうぞ

技術の記事

  1. stressed-elderly-old-man-using-260nw-307307456
    Eclipse でSVNを使っていたら色々と大変だった話
  2. 少しだけ試行錯誤しつつ…も、簡単にできます
    シネマグラフを作ってみた
  3. gahag-0108338313-1
    今話題のMRについて
  4. gahag-0081078485-1
    好きな画像を背景にしたプロット図(散布図)を作成する