首页 > 编程 > JavaScript > 正文

jQuery搜索框效果实现代码(百度关键词联想)

2019-11-20 09:12:23
字体:
来源:转载
供稿:网友

可以实现关键词联想的,搜索框;集合了百度,谷歌,搜狗,360,腾讯等多家搜索

search.html的代码:

<!doctype html><html> <head>  <title>搜索框例子</title>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <script type="text/javascript" src="./js/jquery-2.1.3.min.js"></script>  <script type="text/javascript" src="./js/keyword.js"></script>  <link href="./css/search.css" rel="stylesheet" type="text/css">  <style type="text/css">   *{margin:0 auto}  </style> </head> <body>  <!--start search-->   <div id="search_bg" style="margin-top:20px;margin-bottom:20px;">    <div id="button_bg">     <div class="seach_type">      <span class="type">站内搜索</span>      <span class="type">百度搜索</span>      <span class="type">360搜索</span>      <span class="type">腾讯搜索</span>      <span class="type">搜狗搜索</span>      <span class="type">谷歌搜索</span>     </div>     <span class="changetype"></span>     <form action="http://www.baidu.com/s" method="GET" target="_blank" >      <input type="text" value="" x-webkit-speech="" lang="zh-CN" placeholder="点击搜索" name="wd" class="textb" autocomplete="off"><!--autocomplete 屏蔽输入自动记录-->      <input type="submit" name="sub" value="百度一下" class="subb">     </form>     <div class="keyword"></div>    </div>   </div>  <!--end start--> </body></html>

search.css的代码如下:

/*---------------------搜索框样式-------------------------------*/#search_bg{ width: 960px; height:50px;}#search_bg #button_bg .seach_type{ display: block; width: 80px; height: auto; padding: 0px; border: solid 1px rgba(204,204,204,0.5); position: absolute; top:45px; left: 20px; display: none; z-index: 21;}#search_bg #button_bg .seach_type .type{ display: block; width: 80px; height: 26px; background: rgba(255,255,255,0.3); border-bottom:dashed 1px #cccccc; text-align: center; line-height:26px; cursor: pointer;}#search_bg #button_bg .seach_type .type:hover{ color: #126AC1;}#search_bg #button_bg .changetype{ display: block; width: 8px; height: 12px; position: absolute; top:20px; left: 30px; cursor: pointer; background: url(../images/class_1_16_1.png);}#search_bg #button_bg{ width:600px; height: 50px; position: relative;}#search_bg #button_bg .textb{ display: block; width: 400px; height: 36px; outline: none; background: none; border:solid 1px #CCCCCC; float:left; margin-top:5px; margin-left:20px; text-align: left; text-indent: 20px; font-size: 15px;}#search_bg #button_bg .subb{ display: block; width: 80px; height: 40px; outline: none; border: none; background: #1F76CB; float: left; margin-top:5px; cursor: pointer; box-shadow: 0 1px 2px rgba(28,116,203,0.5); color: #ffffff; font-size: 15px; text-shadow:0 1px 2px rgba(245,247,250,0.2);}#search_bg #button_bg .textb:focus{ border:solid 1px #1F76CB;}#search_bg #button_bg .subb:hover{ box-shadow: 0 1px 3px rgba(28,116,203,1);}#search_bg #button_bg .keyword{ width: 400px; height: auto; border:solid 1px #cccccc; border-top:none; position: absolute; top:45px; left:20px; z-index:40; box-shadow: 1px 2px 2px rgba(5,5,5,0.1); display: none;}#search_bg #button_bg .keyword span{ display: block; clear: both; width: 400px; height: 30px; text-indent:15px; line-height: 30px; cursor: pointer; background: rgba(255,255,255,0.3); border-bottom:dashed 1px #cccccc;}#search_bg #button_bg .keyword span:hover{ background: rgba(0,0,0,0.5);}/*------------------seach结果集样式---------------------*/#search_result{width: 960px;height: auto;min-height: 400px;overflow: hidden;}#search_result .result_num{width: 960px;height: 26px;text-align: left;text-indent: 15px;font-size: 15px;line-height: 26px;color:#767676;}#search_result .result{width: 960px;height: auto;max-height: 110px;margin-top:15px;margin-bottom: 15px;padding-top: 15px;padding-bottom: 15px;text-indent: 20px;line-height: 25px;color: #333333;text-overflow: ellipsis;overflow: hidden;/*以上三行实现溢出显示省略号*/border-bottom:dashed 1px #cccccc;}#result_page{ width: 960px; height: 30px;}#result_page a{ display: block; float: left; margin-left:5px; width: 30px; height: 30px; text-align: center; text-decoration: none; line-height: 30px; background: none; color: #363636; border:solid 1px #A5A5A5; transition:all .5s linear; -webkit-transition: al.5s linear;/* Safari and Chrome or liebao*/ -moz-transition: all .5s linear;/*Firefox */ -o-transition: all .5s linear;/*Opera */ -ms-transition: all .5s linear;/*for ie*/}#result_page a:hover{ color:#0A67C1; border:solid 1px #0A67C1;}#result_page .nowpage{ border:solid 1px #EAE8E8; color:#0F9512;}#result_page .previous,#result_page .next{ width: 80px; height: 30px;}

keyword.js的代码如下:

$(document).ready(function(){ /*--------------------搜索框样式控制js------------------------*/ var checktype=$("#search_bg #button_bg .changetype"); var type=$("#search_bg #button_bg .seach_type .type"); var seach_type=$("#search_bg #button_bg .seach_type"); var form=$("#search_bg #button_bg form"); var textb=$("#search_bg #button_bg form .textb"); var subb=$("#search_bg #button_bg form .subb"); var tbcolor="#126AC1"; textb.focus();//文档加载完毕 搜索框获取焦点 var search_types={  "types":[{name:"wd",action:"./search.php",value:"搜索本站",subcolor:"#126AC1",stype:"./images/sanjiao_03.png"},     {name:"wd",action:"http://www.baidu.com/s",value:"百度一下",subcolor:"#126AC1",stype:"./images/sanjiao_03.png"},     {name:"q",action:"http://www.so.com/s",value:"360搜索",subcolor:"#53C920",stype:"./images/sanjiao_04.png"},     {name:"w",action:"http://www.soso.com/q",value:"腾讯搜索",subcolor:"#760AAA",stype:"./images/sanjiao_05.png"},     {name:"query",action:"http://www.xuan369.com/so/qqkk8.jsp",value:"搜狗搜索",subcolor:"#F94F1B",stype:"./images/sanjiao_06.png"},     {name:"q",action:"http://209.85.228.42/search",value:"谷歌搜索",subcolor:"#29C971",stype:"./images/sanjiao_07.png"}    ]}; //alert(search_types.types[1].value); //选择搜索类型按钮被点击 checktype.click(function(){  seach_type.css({"display":"block",height:0});  seach_type.animate({   height:(type.height()+1)*type.length,  },500); }); type.click(function(){  //alert(search_types.types[$(this).index()].value)  form.attr("action",search_types.types[$(this).index()].action);//改变表单提交位置  textb.attr("name",search_types.types[$(this).index()].name);//改变表单变量名  subb.val(search_types.types[$(this).index()].value);//改变按钮显示  subb.css({background:search_types.types[$(this).index()].subcolor});//改变按钮颜色  tbcolor=search_types.types[$(this).index()].subcolor;//改变输入框边框颜色  checktype.css({"background":"url("+search_types.types[$(this).index()].stype+")"});  subb.css({"box-shadow":"0 1px 2px "+search_types.types[$(this).index()].subcolor});  textb.focus();//编辑框获取焦点  seach_type.animate({   height:0,  },500,function(){   seach_type.css({"display":"none",height:0});  }); }); seach_type.mouseleave(function(){  seach_type.animate({   height:0,  },500,function(){   seach_type.css({"display":"none",height:0});  }); }); textb.focus(function(){  textb.css({border:"solid 1px "+tbcolor});  //  seach_type.animate({   height:0,  },500,function(){   seach_type.css({"display":"none",height:0});  }); }); textb.blur(function(){  textb.css({border:"solid 1px "+"#CCCCCC"}); }); /*-----------------获取关键词js---------------------*/ var textb=$("#search_bg #button_bg form .textb"); textb.keyup(function(event){  if(textb.val()==""||textb.val()==" "){   return;  }  if(event.which!=39&&event.which!=40&&event.which!=37&&event.which!=38&&event.which!=13)  $.ajax({   url:"http://suggestion.baidu.com/su",   type:"GET",   dataType:"jsonp",   jsonp: 'jsoncallback',   async: false,   timeout: 5000,//请求超时   data:{    "wd":textb.val(),    "cb":"keydata"   },   success: function (json) {   },   error: function (xhr) {    return;   }  }); });});//打印关键词function keydata(keys){  var len=keys.s.length;  var keywordbox=$("#search_bg #button_bg .keyword");//关键词盒子  var textb=$("#search_bg #button_bg form .textb");  var subb=$("#search_bg #button_bg form .subb");  if(len==0){   keywordbox.css({display:"none"});  }else{   keywordbox.css({display:"block"});  }  var spans="";  for(var i=0;i<len;i++)  {   spans+="<span>"+keys.s[i]+"</span>"  }  keywordbox.html(spans);//把关键词写入关键词盒子  keywordbox.animate({   height:(keywordbox.children().height()+1)*len//关键词下滑效果  },100);  //点击候选词汇  keywordbox.children().click(function(){   textb.val($(this).html());//选中词汇放入输入框   keywordbox.animate({    height:0//关键盒子收缩效果   },10,function(){    keywordbox.css({display:"none",height:"auto"});    keywordbox.empty();//清空盒子内容   });   textb.focus();//输入框获取焦点*/   $("#search_bg #button_bg form").submit();//提交搜索  });  //提交按钮获取焦点后  subb.focus(function(){//提交按钮获取焦点后   keywordbox.animate({    height:0//关键盒子收缩效果   },10,function(){    keywordbox.css({display:"none",height:"auto"});    keywordbox.empty();//清空盒子内容   });  });  /*textb.blur(function(){//输入框失去焦点后收缩关键词盒子(此方法会与点击候选词方法冲突造成失效)   keywordbox.animate({    height:0//关键盒子收缩效果   },100,function(){    keywordbox.css({display:"none",height:"auto"});    keywordbox.empty();//清空盒子内容   });  });*/  keywordbox.mouseleave(function(){//鼠标离开关键字盒子后收缩关键词盒子(取代上一个方法)   keywordbox.animate({    height:0//关键盒子收缩效果   },100,function(){    keywordbox.css({display:"none",height:"auto"});    keywordbox.empty();//清空盒子内容   });  });  var numspan=0;//用来指定选择候选词(通过方向键改变)  textb.keydown(function(event){//如果使用回车提交时,关键词盒子也可以自动收缩   if(event.which==13){    keywordbox.animate({    height:0//关键盒子收缩效果    },10,function(){     keywordbox.css({display:"none",height:"auto"});     keywordbox.empty();//清空盒子内容    });    /*$("#search_bg #button_bg form").submit(function(){     return false;//阻止提交    });*/    /*$("#search_bg #button_bg form").submit(function(e){     e.preventDefault();//阻止提交方法2    });*/   }   //按下下方向键   if(event.which==40){    if(numspan==len)     numspan=0;    for(var i=0;i<len;i++){     if(numspan==i){      keywordbox.children().eq(i).css({       "background-color":"rgba(0,0,0,0.3)"      });     }else{      keywordbox.children().eq(i).css({       "background-color":"rgba(255,255,255,0.3)"      });     }    }    textb.val(keywordbox.children().eq(numspan).html());    numspan++;   }   //按下上方向键   if(event.which==38){    numspan--;    if(numspan==len)     numspan=0;    for(var i=0;i<len;i++){     if(numspan==i){      keywordbox.children().eq(i).css({       "background-color":"rgba(0,0,0,0.3)"      });     }else{      keywordbox.children().eq(i).css({       "background-color":"rgba(255,255,255,0.3)"      });     }    }    textb.val(keywordbox.children().eq(numspan).html());   }  });  keywordbox.children().mouseover(function(){   numspan=$(this).index();   for(var i=0;i<len;i++){     if(numspan==i){      keywordbox.children().eq(i).css({       "background-color":"rgba(0,0,0,0.3)"      });     }else{      keywordbox.children().eq(i).css({       "background-color":"rgba(255,255,255,0.3)"      });     }    }    textb.val(keywordbox.children().eq(numspan).html());  });}

页面效果如图:

这里写图片描述
这里写图片描述
这里写图片描述

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表