做爲一個大三準畢業生,如今已經決定了轉行前端,原本覺得前端比較簡單,可是發現,水仍是比較深的。。從 12 月份開始自學前端內容,從 W3CSHOOL 網站學習基礎內容,感受入門仍是比較簡單。可是實際每個簡單的知識點,都有它深刻的用法。特別是在我寫完一個輪播組件後,深深地感覺到了前端進階不簡單,但仍是頗有樂趣的。javascript
目前正在尋找實習機會,小夥伴們若是有好機會的話,但願可以多多推薦~html
本文介紹一個輪播圖效果的實現,雖然是一個小小的輪播圖組件,可是師傅告訴我,仍然要按照一個正常項目的流程去構思。前端
好了,廢話很少說了,開始正題~java
有的時候,術語真的很重要,由於術語可以大大下降相同領域人員的溝通成本。當師傅第一次跟我說,要讓我經過實現一個輪播圖組件來鍛鍊個人綜合能力的時候,我是很懵逼的。輪播圖,這個概念在以前沒據說過,但當師傅從京東、淘寶官網給我指出哪一個是輪播圖效果的時候,我才明白,這個效果原來是輪播圖效果。。其實以前我是知道這種效果的,只是不知道它是這麼一個叫法。git
經過研究別人家的輪播圖,我肯定了以下需求點:github
肯定了需求,師傅告訴我,這些僅僅是產品做爲一個不懂技術的人提出的功能,可是做爲開發人員,咱們還須要考慮可維護和可複用。因而,我又擴展出以下一些開發需求點:數組
能夠看出,產品的需求只有三個,可是開發要考慮的除了產品的需求,還有那麼多額外的考慮點。 很嚇人吧。。。服務器
你看,你看,產品提出的一個小需求,開發須要考慮多少事情。。但願產品大大可以多多理解開發。。閉包
需求確認後,接下來咱們開始撰寫設計方案了。app
深刻的理解需求後,咱們就須要想辦法如何實現這些需求。
options
:
有了上面兩個規則,咱們就能夠約定調用者的使用方式了:
new Slider({}).init();
複製代碼
之因此使用 Slider 實例一個對象來生成一個輪播圖,是由於一個頁面上可能會有多個輪播圖,爲了讓他們之間不相干擾,因此採用實例化的方式調用。
接下來咱們要定義 init 方法了。
初始化方法主要乾了這麼幾件事。
之因此定義一個 imgWrapper 包裹圖片元素,是由於咱們的輪播圖效果採用 CSS3 的 transform 實現,結合 CSS3 的過分屬性 transition 可以實現特別平滑的輪播動畫效果。
最終咱們的容器結構以下所示:
<div>
<div class="imgWrapper> <div><img/></div> <div><img/></div> <div><img/></div> </div> </div> 複製代碼
生成了 DOM 元素,咱們須要把他們的樣式適配好。這裏就不詳細介紹了,感興趣的同窗能夠看下源碼。
接下來,要增長輪播以及縮略圖點擊事件了。
以上就是設計方案的大致思路,可是其實仍是有一些細節在裏面,這裏就再也不一一贅述,感興趣的點此查看源碼哈。
有了上面的設計方案,編寫代碼基本上就容易不少了,可是對於我一個初學者,仍是折騰了好久才實現出來,整個過程讓我更深入地學習到如下幾點:
上面列舉的都是很基礎的內容,雖然以前已經學習過它們,可是當我真正要寫一個項目的時候,才發現本身無所適從,不知道該怎麼入手。通過編寫這個組件的學習,我發現仍是要經過項目來鍛鍊本身對基礎知識的掌握。
編碼細節再也不贅述。
自我測試,主要是測試產品提出的需求以及爲了提升可複用性開發人員本身增長的新需求。自我測試是爲了可以讓測試人員更直接的測試主要功能,而不將精力和時間消耗在因爲開發本身的失誤致使的一些問題,這是頗有必要的環節。
在這個過程當中,我將本身做爲組件調用者,去使用這個組件,並對功能進行測試。
測試完畢後,開始發佈上線。我這個項目是託管在 github 的,因此上線過程僅僅是將代碼上傳到 github 便可。在這個過程當中,我學習了 git 的常見使用方式。
這個組件是用原生 JavaScript 實現的,還存在一些不足,將來準備完善該組件,並實現基於 React 和 Vue 技術的版本。
以上就是一個大三學生開發一個輪播圖組件的過程,在這個過程當中,我掌握了項目開發的流程,git 的使用,以及 JS 和 CSS3 的樣式使用技巧,在此將本文送給全部和我同樣準備入行前端的新同窗,共勉。