天天看點

rails應用ajax之三:進一步完善ajax動畫特效果

    本貓已經對界面放低标準很久了,但是複習了ajax之後突然發現:哇!原來世界可以這麼美,這麼生動鮮活的!是以本篇主要讨論下如何用ajax在rails中做一些簡單的動畫效果。

    其實最新版的的rails中使用的是coffeescript,它也是對js的進階封裝,使其更貼近于ruby簡潔靈動的文法。coffeescript暫時不校習鳥,以後補上吧!在rails舊版本中使用的js架構是prototype,其自帶一個effects.js圖像效果庫。比如說我想在每次新插入user時将整ul元素背景短暫高亮,用prototype可以這樣寫:

高版本的rails自身已不帶prototype鳥,需要安裝prototype-rails gem然後将幾個js檔案拷貝到/public/javascripts目錄下,然後在視圖檔案中包含js檔案即可:

    這裡可以看到prototype的一些api的使用幫助:

http://thinhunan.cnblogs.com/archive/2006/04/01/developernotesforprototype.html

    我們知道js的另一個不錯的架構是jquery,它和prototype一般是不可以混用的。是以下面講一下如何用jquery做出類似上面prototype的效果。比如說我想讓每個新插入的user(2行包括name和age)都在插入時有短暫的高亮效果,用jquery可以這樣寫:

當然你不能包含prototype和effects了,你需要包含jquery:

    值得說明的是在jquery中延時執行有2種方法一種是向上面代碼中用js的函數settimeout,不過在此函數的上下文中this的值會變,是以必須事先儲存你需要的值,這也是我var _this = this;代碼的用意。還有一種延時方法是用jquery中的函數delay,不過該函數是異步調用的,而且在上述情況下不能達到偶的要求,是以用的是settimeout的方法。jquery的api幫助可以看:http://www.w3school.com.cn/jquery/index.asp

    另外說一下,在調試html代碼時用firefox的調試功能那時相當的酸爽哦,大家可以嘗試下。

繼續閱讀