Born Neet

- The Emotional Programmer -

Shortcut Key
Next Page … J(Shift + j)Prev Page … K(Shift + k)
Scroll Down … Space / Page Down
Scroll Up … Shift + Space / Page Up
2007.11.20(Tue.) 23:18
 

Ajax等によって更新された部分を、一瞬だけ色を変えることでユーザに知らせるのが、Yeloow Fade Technique(YFT)。
昨日のエントリで紹介したAjaxテクニックブックにも載ってました。

bookmarkletterでも使っています。

ただあれは、タイマーと現在色保持のために2つもグローバル変数を消費しちゃってます。(+関数名で3つ。)
なので今日は、グローバル変数を使用せずに同じことを実現してみようと思います。

ということで、せっかく勉強したクロージャをバリバリ使ってやるぞ!と意気込んでたんですが…。


[ここから続き]

amachang - JavaScript 入門にずばり答えらしきものが載っちゃってた。
(※ 元記事にはもっとスマートな書き方がたくさん掲載されています。今回は上から2つ目の「構造化された場合」という項目を参考にしました。)

あれ、あっさり完成か?

黄色く!

ここのバックの色が変化します。

 

ソースはこれ。

document.getElementById("bnYellow").onclick = function() {

  var timer = setInterval(YFT, 50)
  var blue = 0;
  function YFT() {
   document.getElementById("bnYFTArea").style.backgroundColor = "#ff" + blue.toString(16);
   if(++blue > 16) clearInterval(timer);
  }
}

なんか意外と簡単にできてしまって拍子抜け。
連打してもちゃんとその回数分イベント起きてると思う。
まぁ元記事との違いはboxが動くか、色が変わるかだけだし、自力で書いたとはとても言えないけど。

実用的なものをサラッと書けるようになるにはまだまだ遠い。
JavaScript 第5版読みたいけど高いなぁ…)

追記(2008/9/21 21:50)

今さらミスに気づいた(>_<)
++blue > 16はダメでしょ…。
最後#ff10になっちゃう^^;

検証用ソース

(function() {

  var timer = setInterval(YFT, 50)
  var blue = 0;
  function YFT() {
   //document.getElementById("bnYFTArea").style.backgroundColor = "#ff" + blue.toString(16);
   console.log("#ff" + blue.toString(16));
   if(++blue > 16) clearInterval(timer);
  }
})();

結果

#ff0
#ff1
#ff2
#ff3
#ff4
#ff5
#ff6
#ff7
#ff8
#ff9
#ffa
#ffb
#ffc
#ffd
#ffe
#fff
#ff10 ← あちゃー!
Post your Comment
Name (任意) :
Title (任意) :
URL (任意) :
Comment (日本語必須) :
Trackback

※ 日本語必須


この記事のトラックバックURL:
  BackHOME : Next 
自作スクリプト実験
ブログ内検索
カレンダー
10 2008/11 12
S M T W T F S
1
3 4 5 6 7
11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
最近のコメント
[08/13 mymyeasy]
[07/31 mymyeasy]
[07/06 ゆーいち]
[07/05 ゆーいち]
[07/04 ゆーいち]
最近のトラックバック
RSS
RSS 0.91
RSS 1.0
RSS 2.0
プロフィール
HN:
t*
運営日数:
?日
記事数:
?件
ブログパーツ
あわせて読みたい
スポンサード リンク

Born Neet wrote all articles. 
Powered by Ninja.blog / TemplateDesign by TMP, modified by t*  

占い忍者ブログ