亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

章節
問答
課簽
筆記
評論
占位
占位

小男孩部分代碼的封裝

前端充斥著大量的異步操作,動畫就是異步的邏輯,七夕主題的整個設計都是以小男孩走路為主線。在走到不同的路段就會有不同的操作,走路是通過CSS3的transition與animation結合完成的,所以針對這類異步的處理我采用了jQuery的Deferred封裝起來。

除此之外,在整個結構中都是采用面向接口編程,簡單的說就是將行為分布在各個對象中,并讓這些對象自己各自負責自己的行為。那么小孩男的整個行為邏輯我都將會封裝成一個獨立的對象,通過接口調用

說了半天,我們看右邊的代碼最直接,我單獨用了個BoyWalk.js把小男孩的動作給封裝了起來,暴露了walkTo、stopWalk、setColoer三個接口,提供給外部調用。 接口的命名與數量是需要根據具體的業務邏輯的需要,隨著人物的動作變化的增加,接口也會增加

以小男孩走路為變化,不同的路段有不同的速率與距離,所以會提供一個走路的walkTo接口給外部。在第三章的時候我把走路動作的一些細節與實現都分解了一遍,這里主要看下怎么融入Deferred的處理

index.html中的代碼調用,可以這樣理解:

  • 生成一個小男孩對象
  • 開始走路,2秒走到頁面的20%的距離
  • 完成了設置一個顏色效果
  • 繼續走路,走到40%的區域
  • 完成了設置一個顏色效果
  • 繼續走路,走到60%的區域
  • 完成了設置一個顏色效果

通過加入Deferred的處理,讓我們的流程就跟同步一樣,這件事完成了就開始下一件事,非常合適人類的線性編程的邏輯,之后的整個流程都會基于then的方式書寫

任務

打開index.html文件,在代碼的68行填入相應代碼,可以觀察到之后的更多動作

.then(function() {
    //第二次走
    return boy.walkTo(2000, 0.4)
}).then(function() {
    //第二次走路完成
    boy.setColoer('yellow')
}).then(function() {
    //第三次走路
    return boy.walkTo(2000, 0.6)
}).then(function() {
    //第三次走路完成
    boy.setColoer('blue')
});
?不會了怎么辦
||

提問題

寫筆記

公開筆記
提交
||

請驗證,完成請求

由于請求次數過多,請先驗證,完成再次請求

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務號

綁定后可得到

  • · 粉絲專屬優惠福利
  • · 大咖直播交流干貨
  • · 課程更新,問題答復提醒
  • · 賬號支付安全提醒

收藏課程后,能更快找到我哦~

使用 Ctrl+D 可將課程添加到書簽

邀請您關注公眾號
關注后,及時獲悉本課程動態

舉報

0/150
提交
取消
全部 精華 我要發布
全部 我要發布
最熱 最新
只看我的

手記推薦

更多

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?