摘要:歡迎交換友鏈進擊的程序媛微博江小湖不要臉的自戀一下我覺得我看源碼的能力越來越強了,想看到搜索框動畫效果很不錯,想試著實現(xiàn)一下。例如只做了輸入框的顯示隱藏。但是看源碼沒有設(shè)置,有兩個屬性引起我的注意和,可以猜測這個動畫的實現(xiàn)由實現(xiàn)的漸變。
歡迎交換友鏈 Laker"s Blog--進擊的程序媛
Github:https://github.com/younglaker
微博: 江小湖Laker
不要臉的自戀一下——我覺得我看源碼的能力越來越強了,2333~
想看到 Ruby China 搜索框動畫效果很不錯,想試著實現(xiàn)一下。最初我的想法是用jQuery的animate:
$("input").animate({width: "toggle"});
題外話,toggle值意味著寬度在0和原本寬度之間切換.
如果這樣用的話,input就要設(shè)為display: none; 并且給input一個初始的長度。
例如 Demo (只做了輸入框的顯示隱藏)。
但是看 Ruby China 源碼沒有設(shè)置display: none;,有兩個屬性引起我的注意:width: 0px; 和 transition: all .3s;, 可以猜測這個動畫的實現(xiàn)由 transition 實現(xiàn) width 的漸變。
在不斷點擊搜索和取消搜索中可以看到,form 上在增加、刪除 .active,所以搜索是否被觸發(fā)的標記綁定在 form 上。
再看CSS,發(fā)現(xiàn)搜索框、查詢按鈕、關(guān)閉按鈕都在動畫觸發(fā)后有個新的樣式出現(xiàn),名字如.header .form-search.active .XXX,看到這個.form-search.active就確定他們的動畫是通過 form 上的 .active 來標記的。
然后我摳出以下主要代碼:
本例中將會用到JavaScript觸發(fā) CSS transition ,詳細介紹請看我的另一篇文章《花式使用CSS3 transition》。
HTML:
CSS:
.header { width: 250px; height: 50px; position: relative; display: block; } .search-block { float: right; } .header .form-search .fa { color: #333; } .header .form-search { font-size: 14px; position: relative; margin-top: 13px; margin-right: 10px; padding: 0 15px; width: auto; } .header .form-search .form-control { font-size: 12px; border: none; width: 0px; height: 100%; padding: 6px 1px 4px 1px; margin-left: 4px; background: transparent; -webkit-transition: all .3s; -moz-transition: all .3s; transition: all .3s; box-sizing: border-box; color: #333; } //輸入框的動畫部分 .header .form-search.active .form-control { width: 150px !important; cursor: text; } .fa-search:before { content: "f002"; } .header .form-search .fa-search { cursor: pointer; position: absolute; top: 6px; right: 0; -webkit-transition: all .3s; -moz-transition: all .3s; transition: all .3s; } // 搜索按鈕的動畫部分 .header .form-search.active .fa-search { left: 0; right: auto; } .header .form-search .btn-close { position: absolute; top: 6px; right: 0px; cursor: pointer; -webkit-transform: scale(0, 0); -moz-transform: scale(0, 0); transform: scale(0, 0); -webkit-transition: all .3s; -moz-transition: all .3s; transition: all .3s; } // 取消搜索的動畫部分 .header .form-search.active .btn-close { -webkit-transform: scale(1, 1); -moz-transform: scale(1, 1); transform: scale(1, 1); }
JavaScript:
$(".btn-search").on("click", function() { $(".form-search").addClass("active"); }); $(".btn-close").on("click", function() { $(".form-search").removeClass("active"); });
View Demo
小結(jié)我也不是一眼就看出來的,摳這個效果花了大半天,也是蠻菜的。
分享自己一點點小經(jīng)驗:
長期寫代碼的經(jīng)驗積累
多猜測多嘗試,不斷重復原網(wǎng)站的效果,看看代碼有什么變化
把想到的關(guān)鍵詞就google一下,也許能得到啟發(fā)
多看源碼,剛開始很累,后來就習慣的。我經(jīng)常會看各種網(wǎng)站源碼,框架也大致看過jQuery、Framework 7。前端這塊的源碼還是比較容易看的。
多模仿多練習。光看別人的代碼不夠,試著用自己的方式寫寫,然后對照別人的代碼比對不足。我仿jQuery寫了Octjs,仿jCanvas寫了EasyCanvas(我從初學開始就有個毛病,如果不能理解一個框架、插件的原理,我用著心里就不踏實 >_<)。
想起老博客里寫過讀豆瓣源碼的文章,是我大三時候?qū)懙模敃r也比較稚嫩,算是第一次看復雜源碼,畢竟文件多、代碼已壓縮混淆。以供參考:《豆瓣綁定事件的方法初探》 (大學時候的博客真是蠻逗比的,哈哈)
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/78419.html
摘要:歡迎交換友鏈進擊的程序媛微博江小湖不要臉的自戀一下我覺得我看源碼的能力越來越強了,想看到搜索框動畫效果很不錯,想試著實現(xiàn)一下。例如只做了輸入框的顯示隱藏。但是看源碼沒有設(shè)置,有兩個屬性引起我的注意和,可以猜測這個動畫的實現(xiàn)由實現(xiàn)的漸變。 歡迎交換友鏈 Lakers Blog--進擊的程序媛Github:https://github.com/younglaker微博: 江小湖Laker ...
摘要:特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 本以為自己收藏的站點多,可以很快搞定,沒想到一入?yún)R總深似海。還有很多不足&遺漏的地方,歡迎補充。有錯誤的地方,還請斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應(yīng)和斧正,會及時更新,平時業(yè)務(wù)工作時也會不定期更...
閱讀 837·2021-11-18 10:07
閱讀 2355·2021-10-14 09:42
閱讀 5315·2021-09-22 15:45
閱讀 585·2021-09-03 10:29
閱讀 3462·2021-08-31 14:28
閱讀 1873·2019-08-30 15:56
閱讀 3038·2019-08-30 15:54
閱讀 994·2019-08-29 11:32