經過我無聊的測試之後發現,如果user手賤,連續按好幾下的話,那個highlight的特效會沒辦法恢復到原來的背景顏色。
在trace過neo.js跟effect.js以後,得知該特效是在effect.js裡面的Effect.Highlight裡面。原作者的寫法在邏輯上是ok的。但是沒有考慮到連點的問題。
該function會傳進去effect的startcolor跟endcolor,在function裡面會記錄網頁元件目前的背景色,然後當特效完成,再把背景色改回去。就是因為是在click以後才記錄下目前的背景色,所以造成連擊發生的時候,會記錄到錯的背景色,然後特效結束就還原成了錯的背景色。
所以這邊做了一點小修改,我把原本的目前背景顏色,改為記錄傳進function的特效endcolor。差別就是要自己在neo.js裡面用到特效的時候的endcolor傳背景顏色進去,否則這個效果就會永久改變這一個block的底色。
修改方法如下。
1.在effect.js裡面找到下面這一行。
this.options.restorecolor = this.element.getStyle('background-color');
2.把上面的藍色部份替換成下面紅色部份這樣。
this.options.restorecolor = this.options.endcolor;
記得在使用highlight effect的時候要把結束顏色設成跟背景色一樣喔。
2 Comments:
>_<
你好強~~啾咪~
這這這這...沒有很強阿...XD
只是對某些東西有怨念的時候發揮出來的強大力量,平常我也只不過是一個平凡的上班族罷了。XD
Post a Comment