可以实现关键词联想的,搜索框;集合了百度,谷歌,搜狗,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()); }); }
页面效果如图:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持phpstudy。
本文地址:https://www.stayed.cn/item/18354
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我