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

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

開門關門效果的實現

JavasSript代碼的編寫是根據HTML結構來的,合理的HTML結構布局,可以讓代碼更少更簡單

先看看門的布局

<div class="door">
    <div class="door-left"></div>
    <div class="door-right"></div>
</div>

通過一個父容器定位,左右門可以采用left處理分別是0%與50%,這樣我們在通過JS控制時候只需要改變left就可以形成開關門的效果

開門關門的效果比較簡單,用之前3-3節用過的transition插件可以實現

在實現的時候還需要注意幾個問題

  • 開關門是2組動畫,需要2組transition的實現
  • 開關門是否完成,是需要監聽2個動畫是否完成才可以
  • 為了支持線性編程的邏輯,需要通過Deferred改善代碼

開門的left的坐標是往反向變化,所以變化的值是:

  • 左邊0%到-50%  
  • 右邊50%到100%

關門的left還原到0%與50%即可。

在監聽動畫完成上,采用用了一個count計數,count開始為2,當執行第一個回調后會減1,只有當二個回調執行的時候,這個defer.resolve才會執行

var complete = function() {
    if (count == 1) {
        defer.resolve();
        return;
    }
    count--
}

在代碼封裝部分,把開關門的動畫調用接口分開,但是相同的部分合并成doorAction最終的處理方法,并合并了Deferred的處理,這樣可以讓開關門的這個動作可以很好融入到跟整體的流程中

任務

打開index.html文件,在代碼的97行填入相應代碼,可以觀察到右邊開關門的變化

doorRight.transition({
    'left': right
}, time, complete);
?不會了怎么辦
||

提問題

寫筆記

公開筆記
提交
||

請驗證,完成請求

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

加群二維碼

打開微信掃碼自動綁定

您還未綁定服務號

綁定后可得到

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

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

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

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

舉報

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

手記推薦

更多

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?