js模擬百度模糊搜索的實(shí)例
廢話不多說(shuō),直接上代碼
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
*{
margin:0;
padding:0;
}
input{
display:block;
list-style:none;
}
html,body{
color:#000;
font-size:14px;
font-family:'微軟雅黑';
}
.box{
margin:50px auto;
width:300px;
}
.box input{
padding:0 10px;
width:278px;
height:30px;
border:1px solid green;
}
.box ul{
display:none;
border:1px solid green;
border-top:none;
}
.box ul li{
list-style:none;
padding:0 10px;
height:30px;
line-height:30px;
cursor:pointer;
}
.box ul li:hover{
background:#eee;
}
</style>
</head>
<body>
<div class='box'>
<input type="text" id='searchInp'/>
<ul id='searchBox'>
<li>1111</li>
<li>2222</li>
<li>3333</li>
<li>4444</li>
</ul>
</div>
<script src='jquery.min.js'></script>
<script>
var searchModule = (function(){
var $searchInp = $('#searchInp'),
$searchBox = $('#searchBox');
//向百度的服務(wù)器發(fā)送JSONP請(qǐng)求,把數(shù)據(jù)綁定到容器當(dāng)中
function bindHTML(){
var searchKey = $searchInp.val();
function callback(data){
data = data['g'];
var str = '';
$.each(data,function(index,item){
if(index<=3){
str += '<li>'+item+'</li>'
}
})
$searchBox.html(str).stop().slideDown(300);
}
$.ajax({
url:"https://sp0.baidu.com/5a1Fazu8AA54nxGKo9WTAnF6hhy/su?wd="+searchKey,
dataType:"jsonp",
jsonp:'cb',
success:callback
})
}
//事件綁定和模塊的入口
function init(){
//文本框獲取焦點(diǎn)或者輸入內(nèi)容,判斷當(dāng)前文本框中是否有內(nèi)容,有內(nèi)容綁定數(shù)據(jù),沒(méi)有內(nèi)容隱藏展示框
$searchInp.on("focus keyup",function(){
var val = $(this).val();
if(val.length>0){
bindHTML();
return;
}
$searchBox.stop().slideUp(300);
}).on('blur',function(){
window.setTimeout(function(){
$searchBox.stop().slideUp(300);
},3000)
})
//給展示框中的li綁定方法
$searchBox.on('click',function(e){
var tar = e.target,
tarTag = tar.tagName.toUpperCase(),
$tar = $(tar);
if(tarTag==="LI"){
$searchInp.val($tar.html());
$(this).stop().slideUp(300);
}
})
}
return {
init:init
}
})()
searchModule.init();
</script>
</body>
</html>
以上這篇js模擬百度模糊搜索的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JS實(shí)現(xiàn)合并兩個(gè)數(shù)組并去除重復(fù)項(xiàng)只留一個(gè)的方法
這篇文章主要介紹了JS實(shí)現(xiàn)合并兩個(gè)數(shù)組并去除重復(fù)項(xiàng)只留一個(gè)的方法,涉及JavaScript數(shù)組合并及去重的相關(guān)技巧,需要的朋友可以參考下2015-12-12
JavaScript html5 canvas畫(huà)布中刪除一個(gè)塊區(qū)域的方法
這篇文章主要介紹了JavaScript html5 canvas畫(huà)布中刪除一個(gè)塊區(qū)域的方法,涉及JavaScript結(jié)合html5操作canvas畫(huà)布圖形繪制的技巧,需要的朋友可以參考下2016-01-01
微信小程序 動(dòng)態(tài)修改頁(yè)面數(shù)據(jù)及參數(shù)傳遞過(guò)程詳解
這篇文章主要介紹了微信小程序 動(dòng)態(tài)修改頁(yè)面數(shù)據(jù)及參數(shù)傳遞過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
JS實(shí)現(xiàn)網(wǎng)頁(yè)頂部向下滑出的全國(guó)城市切換導(dǎo)航效果
這篇文章主要介紹了JS實(shí)現(xiàn)網(wǎng)頁(yè)頂部向下滑出的全國(guó)城市切換導(dǎo)航效果,涉及javascript鼠標(biāo)事件及頁(yè)面元素顯示的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08
Electron 打包問(wèn)題:electron-builder 下載各種依賴出錯(cuò)(推薦)
這篇文章主要介紹了Electron 打包問(wèn)題:electron-builder 下載各種依賴出錯(cuò),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07
javascript游戲開(kāi)發(fā)之《三國(guó)志曹操傳》零部件開(kāi)發(fā)(三)情景對(duì)話中仿打字機(jī)輸出文字
前兩講我告訴了大家如何使人物移動(dòng),那么今天我們就來(lái)看看如何實(shí)現(xiàn)仿《三國(guó)志曹操傳》人物情景對(duì)話,感興趣的朋友可以了解下,希望本文對(duì)你有所幫助2013-01-01
JavaScript和jQuery獲取input框的絕對(duì)位置實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇JavaScript和jQuery獲取input框的絕對(duì)位置實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-10-10

