07 December 2005

這幾天一直在試 Dojo(a JavaScript Framework),不過是想加一個 Yellow Fade 的效果而已,卻錯誤連連!氣炸了!查 mailing list 才知道 0.1 版的問題很多,換到 Nightly Build 之後就沒事了... 真是白白浪費了許多時間,而且 0.1 的很多東西也都 deprecate 了。如果有人要試 Dojo,直接跳過 0.1 版吧!

一個簡單的 yellow fade 測試:

<html>
<head>
  <script type='text/javascript'>
     //設定 dojo 初始化參數,要在 dojo.js 之前
     var djConfig = {
         isDebug: true
     };
  </script>
  <!-- 加入 dojo 的 source -->
  <script src="dojo/dojo.js" type='text/javascript'></script>

  <script type='text/javascript'>
      //這個類似 java 裡的 import
      dojo.require("dojo.fx.*");
      dojo.require("dojo.event.*");
      
      function doIt() {
	var node = document.getElementById("divBlock");
        //拿到 DOM node 就對它做 yellow fade,第二個參數表示 yellow 
	//第三個是 fade 的時間 (ms),第四個是 delay 的時間 (ms)
        dojo.fx.html.colorFadeFrom(node, [255,255,204], 500, 100);
      }
        
      function init() {
        //替 divBlock 這個 DOM node 註冊 onclick 的 event
        dojo.event.connect(document.getElementById("divBlock"), "onclick", doIt);
      }
      //將 init() 這個 function 加入 window onload (網頁下載完後自動執行)
      dojo.event.connect(window, "onload", init);
  </script>

</head>
<body>
   <div id="divBlock" >Click me</div>
</body>
</html>

Yellow Fade 是啥?為什麼要做 Yellow Fade? BaseCamp裡有一些討論,有興趣的人可以看看,這個技巧後來衍生為 Fade Anything Techniquie (FAT),可以看這個 FAT 用的很兇 短片(來源為 Raible Design,這個 demo 是用 AJAX 做的)