国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

如何看源碼之Ruby China搜索框動畫實現

plus2047 / 1847人閱讀

摘要:歡迎交換友鏈進擊的程序媛微博江小湖不要臉的自戀一下我覺得我看源碼的能力越來越強了,想看到搜索框動畫效果很不錯,想試著實現一下。例如只做了輸入框的顯示隱藏。但是看源碼沒有設置,有兩個屬性引起我的注意和,可以猜測這個動畫的實現由實現的漸變。

歡迎交換友鏈 Laker"s Blog--進擊的程序媛
Github:https://github.com/younglaker
微博: 江小湖Laker

不要臉的自戀一下——我覺得我看源碼的能力越來越強了,2333~

想看到 Ruby China 搜索框動畫效果很不錯,想試著實現一下。最初我的想法是用jQuery的animate:

$("input").animate({width: "toggle"});

題外話,toggle值意味著寬度在0和原本寬度之間切換.

如果這樣用的話,input就要設為display: none; 并且給input一個初始的長度。

例如 Demo (只做了輸入框的顯示隱藏)。

但是看 Ruby China 源碼沒有設置display: none;,有兩個屬性引起我的注意:width: 0px;transition: all .3s;, 可以猜測這個動畫的實現由 transition 實現 width 的漸變。

在不斷點擊搜索和取消搜索中可以看到,form 上在增加、刪除 .active,所以搜索是否被觸發的標記綁定在 form 上。

再看CSS,發現搜索框、查詢按鈕、關閉按鈕都在動畫觸發后有個新的樣式出現,名字如.header .form-search.active .XXX,看到這個.form-search.active就確定他們的動畫是通過 form 上的 .active 來標記的。

然后我摳出以下主要代碼:

本例中將會用到JavaScript觸發 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

小結

我也不是一眼就看出來的,摳這個效果花了大半天,也是蠻菜的。

分享自己一點點小經驗:

長期寫代碼的經驗積累

多猜測多嘗試,不斷重復原網站的效果,看看代碼有什么變化

把想到的關鍵詞就google一下,也許能得到啟發

多看源碼,剛開始很累,后來就習慣的。我經常會看各種網站源碼,框架也大致看過jQuery、Framework 7。前端這塊的源碼還是比較容易看的。

多模仿多練習。光看別人的代碼不夠,試著用自己的方式寫寫,然后對照別人的代碼比對不足。我仿jQuery寫了Octjs,仿jCanvas寫了EasyCanvas(我從初學開始就有個毛病,如果不能理解一個框架、插件的原理,我用著心里就不踏實 >_<)。

想起老博客里寫過讀豆瓣源碼的文章,是我大三時候寫的,當時也比較稚嫩,算是第一次看復雜源碼,畢竟文件多、代碼已壓縮混淆。以供參考:《豆瓣綁定事件的方法初探》 (大學時候的博客真是蠻逗比的,哈哈)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/111270.html

相關文章

  • 如何源碼Ruby China搜索動畫實現

    摘要:歡迎交換友鏈進擊的程序媛微博江小湖不要臉的自戀一下我覺得我看源碼的能力越來越強了,想看到搜索框動畫效果很不錯,想試著實現一下。例如只做了輸入框的顯示隱藏。但是看源碼沒有設置,有兩個屬性引起我的注意和,可以猜測這個動畫的實現由實現的漸變。 歡迎交換友鏈 Lakers Blog--進擊的程序媛Github:https://github.com/younglaker微博: 江小湖Laker ...

    cnsworder 評論0 收藏0
  • 前端資源系列(4)-前端學習資源分享&前端面試資源匯總

    摘要:特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 本以為自己收藏的站點多,可以很快搞定,沒想到一入匯總深似海。還有很多不足&遺漏的地方,歡迎補充。有錯誤的地方,還請斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應和斧正,會及時更新,平時業務工作時也會不定期更...

    princekin 評論0 收藏0

發表評論

0條評論

plus2047

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<