前端剛實習的一些建議(包含一些問題的解決:移動端滑動監聽不靈敏,video層級過高)

     自己剛實習(前端崗位),也算完整的做了一個項目,我感覺在項目中更多的是熟悉公司的業務邏輯,每個公司都有自己的一套構建方案,也有自己的環境,比如測試環境,預發佈環境等等。
寫這個主要是想分享一下,我在公司這一段時間所接受到的東西,前面也說了,每個公司都有每個公司的業務邏輯,也有自己的一套構建方案,所以公司不同,索要熟悉的業務也不同,甚至部門不同,還會有所不同。下面是我的一些個人關於這段時間的一個總結,希望能給剛實習的朋友一點幫助。
     1.我們在接到項目的時候,會着急去做,先做一點是一點,要儘快的完成任務,我們每一個人都是這樣,剛實習嘛,要多做,這沒什麼問題,我也是這樣,然後我就趕忙的寫,想到什麼就寫什麼,但是,因爲從開始就沒有一個好的構思(好的構思是指你項目中所用的佈局,所選用的框架等等),導致你的項目,無論是可維護性,可擴展性等等,都不盡人意,擴展性,比如新的需求添加進來之後,在你項目的基礎上,添加新的需求,如果剛開始沒有一個好的構思的話,你會發現添加新的需求會非常非常的費勁,如果構思非常好的話,只需要簡單的幾行代碼就搞定的事,你卻需要非常非常多的代碼去解決這個需求,在這我非常有感觸。所以在你拿到項目需求的時候,一定不要着急去做,要想想項目中可能遇到的問題,以及解決方案,雖然我們不可能100%的想到遇到的所有問題,但是50%及以上還是沒什麼問題的,所以,先構思,一定要有一個好的構思方案才能寫出好的代碼。
     2.關於移動端視頻的播放,這個是一大坑點,不同的瀏覽器會採取不同的措施,微信內置瀏覽器會調起一個全屏播放,這個是x5的播放器,而其他的瀏覽器會有不同的反應,有的會全屏,有的不會,所以關於瀏覽器的視頻播放這塊,需要你們重點考慮一下。我可以給你們一些建議,關於IOS端的話沒什麼問題,可以正常播放,引入h5的< video>然後,別忘了加上一個poster屬性,在視頻沒播放的時候給一張海報圖,但是Android這個端你會發現這樣播放視頻會有不同的結果。因爲Android端的video層級很高,也就是說沒有什麼可以覆蓋在video之上,(說的過於絕對,還是有方法的,要不然怎麼出現彈幕視頻呀,是吧,不過並不適合我的項目),非常的不美觀,簡單一點的解決方案:在視頻沒有播放的時候,用圖片當作視頻然後再圖片的正中央位置添加一個播放的按鈕圖片(並且給視頻添加上display:none屬性),當用戶點擊圖片中的播放按鈕的時候,我們讓圖片和播放按鈕全部消失,然後把視頻的display屬性修改爲block,然後當視頻暫停的時候,我們再然視頻none,並且讓圖片的播放按鈕顯示出來,這是一種比較中性的解決方案。
     3.關於移動端的監聽事件,有很多種解決方案,但是等你真的去做的時候,有可能會遇到我的問題,我是使用了zepot這庫,也就是移動版的jquery,我添加了監聽事件,swipeUp,swipeDown,swipeLeft,swipeRight,然後我們會發現,有的時候滑動會非常的不靈敏,多次滑動只會觸發一次滑動事件,有很多方面的原因,其中有一點就是在瀏覽器本身也存在了監聽滑動,比如UC瀏覽器,他監聽右滑返回上一級,這樣話,你的監聽可能就會出現不靈敏的現象,這個時候我們想到了使用event.preventDefault();思路不錯,但是還有個小小的彎路,如果你單純的在你監聽的事件中添加這行代碼,還會不靈敏;怎麼辦呢?代碼如下(需要引入zepto):

var main = $('.f-main');
main.on('touchstart', function(event) {
	event.preventDefault();
	main.on('swipeUp', function(event) {
		event.preventDefault();
		//上滑事件觸發
	})
	main.on('swipeDown', function(event) {
		event.preventDefault();
			//下滑事件觸發
	})
	main.on('swipeLeft', function(event) {
		event.preventDefault();
			//左滑事件觸發
	})
	main.on('swipeRight', function(event) {
		event.preventDefault();
		//右滑事件觸發
	})
	})

注意:我們需要提前一步禁止瀏覽器的默認事件,所以這樣寫,你的監聽滑動會非常的靈敏並且代碼也看似很簡潔,但是需要注意一點就是你禁止了瀏覽器的默認事件,意味着什麼呢?那就是< a>標籤會失效,這個要注意做一些處理。
     4.emmm,注意寫代碼的規範性,每個公司都有它相對應的規範,這個要注意,還有,重要的事情說三遍,要有註釋,註釋,註釋,你別寫了幾百行代碼一個註釋都沒有,讓人摸不着你寫的是個什麼東西。注意功能點用函數封裝,然後調用,函數的上面寫明函數是幹嘛用的,然後函數的命名需要英文,然後駝峯命名法。你的代碼不是你一個人的,在團隊中要考慮到比人的感受,你不知道你的代碼以後別人是不是會擴展功能,別人會不會複用你的代碼,所以註釋要寫好。
     5.QA,這個我是實習的時候才瞭解的,我們寫好的代碼,需要交給QA去審查,當然他不是看你的代碼,而是看你的效果,滿不滿足要求。有問題就要重新修改。
     6.視覺走查,這個流程,視覺會細緻的看你的效果設計,包括各種,行間距,px距離等等,可能你不信,幾px的差距,視覺都能給你找出來,用工具測量的。所以嚴格按照視覺稿走。
     7.最後可能要給產品看一下,當然有的有,有的沒有。
     8.上面提到一個視覺稿,還有一個交互稿,這是你開發的時候用的兩個,一個用來做靜態佈局,一個是你寫js用來進行交互的。

總結:其實剛實習,更多的是熟悉一下公司的業務,和公司的業務。也就是由生到熟的過程。當然有時間的話注意提高自己。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章