JAVASCRIPT實現搜索框的自動完成效果(一)

baxy7666 8年前發布 | 20K 次閱讀 HTML JavaScript開發 JavaScript

來自: http://www.wutongwei.com/front/infor_showone.tweb?id=212

Javascript實現搜索框的自動完成效果(一)

作者 :towaywu

<p>  2016-02-25 11:04:23.0 </p>

<p>  33 瀏覽 </p>

<p>  類別 :編程語言 <a href="/misc/goto?guid=4959666156021639425" rel="nofollow,noindex" target="_blank">前端編程</a> <a href="/misc/goto?guid=4959666155918942416" rel="nofollow,noindex" target="_blank">HTML/CSS/JAVASCRIPT</a> </p>

</div>

</div>

在很多需要搜索的網站, 都會有一個自動完成的搜索框. 方便用戶查找他們想要的搜索詞. 幫助用戶快速找到自己想要的結果. 這種方式是比較友好的. 所以是比較提倡使用的.

我們這次就來實現這一效果. 我們通過兩篇文章來進行講解. 首先我們來完成界面的設計布局.

界面的HTML結構, 第一個少不了的是一個搜索框, 第二個就是搜索的點擊按鈕.

 <div class="search">
         <input type="text" value="">
         <button>搜索</button>
  </div>

這就是最簡單的搜索框的設計. 那CSS代碼怎么處理. 以前用得多的是使用float來進行處理, 然后給搜索框一個邊框,設置一個padding. 然后給按鈕去除邊框,設置一個背景. 這里我們使用flex布局方式. 這樣更簡便點. 不用考慮清除浮動效果.當然這里就要考慮兼容性問題了.

.search {
    display: inline-flex;
    height: 35px;
    margin: 50px auto;
    position: relative;
}
.search input {
    border: #eee 1px solid;
    background-color: #fff;
    outline: none;
    width: 200px;
    padding: 0 5px;
}
.search button {
    background-color: #ff3300;
    color: #fff;
    border: none;
    width: 80px;
}

這時候我們繼續往下考慮, 如果用戶輸入了關鍵詞, 那就得顯示一個列表的相關詞語. 那這時候我們需要加入一個詞語列表.

比如

<ul>
    <li><a href="#">武林外傳</a> </li>
    <li><a href="#">葵花寶典</a> </li>
    <li><a href="#">如來佛掌</a> </li>
    <li><a href="#">九陰白骨爪</a> </li>
</ul>

我們將這行代碼追加到.search的內容后面.然后設置CSS代碼, 我們設置他的最小寬度為.search寬度減去搜索按鈕的寬度.這樣就跟搜索框一樣寬.

.search ul {
    position: absolute;
    left: 0;
    top: 35px;
    border: #eee 1px solid;
    min-width: calc(100% - 80px);
    text-align: left;
}
.search ul a {
    display: block;
    padding: 5px;
}

這得在CSS代碼之前, 將默認的一些瀏覽器樣式清除.最后效果如下.

好了. 下一篇文章我們完成JS的代碼控制.

本文屬于吳統威的博客, 微信公眾號:bianchengderen,QQ群:186659233 的原創文章,轉載時請注明出處及相應鏈接:http://www.wutongwei.com/front/infor_showone.tweb?id=212 ,歡迎大家傳播與分享.

標簽 :javascript教程搜索框

</div>

</div>

</div>

towaywu
<div> 
 <p>一個喜歡技術,走在創業路上的屌絲!歡迎一起交流</p>

 <p> 編程的人微信公眾號: <strong>bianchengderen</strong> </p>

</div>

<p> <img src="https://simg.open-open.com/show/7ec06c8bcf57762c304cbd61f6e49583.jpg" class="alignCenter" width="430" height="430" /> </p>

<strong>交流QQ群: 186659233</strong> 

</div>

</div>

</div> </div>

 本文由用戶 baxy7666 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!