写一个百度提示框

xiaoxiao2021-02-28  7

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>百度提示框</title> <style type="text/css"> #divkeywords{ border: solid 2px red; width: 250px; height: 25px; } #keywordid{ border: none; outline: none; font-size: 20px; } #divappend{ border: solid 2px red; width: 250px; border-top: none; display: none; } .backcolor{ background: green; } </style> <script type="text/javascript" src="js/jquery-1.9.1.js" charset="utf-8"></script> <script type="text/javascript"> //当页面加载完成给页面添加键盘按下去就触发的事件 //event全局事件对象 $(function(){ $(document).keydown(function(event){ var eve = event||window.event; //keyCode: 38-向上的箭头 40-向下的箭头 13-回车enter //alert(eve.keyCode); if(eve.keyCode==38){//背景颜色向上移动 //使input失去焦点 $("#keywordid").blur(); //判断divappend对象中是否有html if($("#divappend").html()==""){ return; } //向上移动 //prevAll():查找当前元素之前所有的同辈元素 var varbg = $(".backcolor").prevAll().length; //判断是否有背景颜色 if(varbg==0){ //删除背景颜色 $(".item").removeClass("backcolor"); //添加背景颜色 eq:同过下标来获取元素的对象 $(".item").eq($(".item").length-1).addClass("backcolor"); }else{ //删除背景颜色 $(".item").removeClass("backcolor"); //添加背景颜色 $(".item").eq(varbg-1).addClass("backcolor"); } }else if(eve.keyCode==40){//背景颜色向下移动 //使input失去焦点 $("#keywordid").blur(); //判断divappend对象中是否有html if($("#divappend").html()==""){ return; } //判断是否有背景颜色 if($(".item").hasClass("backcolor")){ //prevAll():查找当前元素之前所有的同辈元素 var varbg = $(".backcolor").prevAll().length; //判断背景是否移动到最后一个元素 if(varbg==$(".item").length-1){ //删除背景颜色,再添加背景颜色 $(".item").removeClass("backcolor").eq(0).addClass("backcolor"); }else{ //删除背景颜色,再添加背景颜色 $(".item").removeClass("backcolor").eq(varbg+1).addClass("backcolor"); } }else{ //删除背景颜色,再添加背景颜色 $(".item").removeClass("backcolor").eq(0).addClass("backcolor"); } }else if(eve.keyCode==13){//回车--把带背景颜色的文本内容显示到input输入框中 //获取对象 $("#keywordid").val($(".backcolor").text()); //隐藏divappend,并且删除divappend里面的html $("#divappend").hide().html(""); } }); }); //当鼠标移动时触发的事件,给div添加背景颜色 function addcolor(obj){ //移除样式 $(".item").removeClass("backcolor"); //把当前对象添加样式 $(obj).addClass("backcolor"); //获取对象 $("#keywordid").val($(".backcolor").text()); //隐藏divappend,并且删除divappend里面的html } //移除div function removediv(){ //隐藏divappend,并且删除divappend里面的html $("#divappend").hide().html(""); } //百度提示框 function baidusuggest() { //获取divappend对象 var vardivappend = $("#divappend"); //1:获取输入框里面的内容发送给后台服务器查询相关数据 var varval = $("#keywordid").val(); var valtrim = $.trim(varval);//去掉输入框内容的首尾空格 if(valtrim.length>0){ //alert(valtrim+"--"+valtrim.length); //用jquery发送ajax $.post("BaiduSuggest",{keyword:valtrim},function(result){ //判断长度是否大于0 if(result.length>0){ //alert(result); //把数组类型的字符串转成数组 var vararray = JSON.parse(result); //声明一个htmls var htmls = ""; //遍历数组获取元素的值 for (var i = 0; i < vararray.length; i++) { if(i<5){ htmls += "<div class='item' οnmοuseenter='addcolor(this)' οnclick='removediv()' >"+vararray[i]+" </div>"; } } //先显示div,再给div里面添加html vardivappend.show().html(htmls); }else{ //alert("获取不到数据"); //隐藏divappend,并且删除divappend里面的html vardivappend.hide().html(""); return; } }); }else{ //alert("空"); //隐藏divappend,并且删除divappend里面的html vardivappend.hide().html(""); return; } } </script> </head> <body> <div id="div01"> <div id="divkeywords"><input type="text" name="keyword" id="keywordid" value="" οnkeyup="baidusuggest();"/> </div> <div id="divappend"> <!-- <div>张三 </div> <div>张三1 </div> <div>张三2 </div> <div>张三3 </div> --> </div> </div> </body> </html> 写一个百度提示框  1.导入jquery,  画框:显示文本,显示内容 2.设置样式:   border:solid 1px red ;  width:200px ;  height:23px ;  .backcolor{ background-color:red;  } 3.写一个输入框  <div>  <div id="keywordid" type="text" name="keywrod" οnkeyup="baidusuggest();">  </div> 4.下下拉框   <div id="divappend"> <div class='classdiv'>1111</div> <div>1222</div> </div> 5.function baidusuggest(){ //1.获取输入框的值 var varval = $("#keywordid").val(); //2.去掉空格 var valtrim = $.trim(varval); //测试 if(vartrim.length>0){ alert(valtrim+"--"+valtrim.length()); }else{ alert("空"); } } 6.servlet:  1.处理乱码  2.获取参数  3.判断 if(keyword!=null&&!"".equals(keyword)){ //创建集合list //通过name like 查询学生表 "select * from t_student where name like ?"  // ps.setString(1,"%"+name+"%"); // } 7.处理细节: 查询处理就显示show(),然后隐藏hide(),删除就清空内容.html(""); 获取数据显示就用html拼接的方式 html += ""; 8.当网页加载完成给页添加一个键盘按下的触发事件用event $(function (){ $(document).keydown(function(event){ //处理浏览器不兼容的问题 var eve = event||window.event; //获取箭头的值  38向上  40向下 //背景向上动 if(eve.keycode==38){ //让input输入框失去焦点 //判断如果下拉框不为空再向下执行 //定义一个背景 //特殊情况:没有背景色就添加背景色给最后一个 //有背景色就添加向上处理给上一个添加背景色 //移除背景颜色 //光标到了哪里就给哪个div添加颜色 $(.classdiv).eq(索引).addClass(); // // //判断当前的背景颜色的上面有几个兄弟节点prevAll(); } }); }) 背景颜色下移动 if(eve.keycode==40){} 先失去焦点,否则就一直在获取焦点 1.判断是否有背景颜色,backcolor;hasClass("class类名"); 有就判断 背景是否在最后一个元素 if(){} 按enter就表示选中的内容: 判断keycode==13:通过event获取 获取内容:通过类选择器获取对象的值 将值放在输入框中:输入框div对象.val(值); 隐藏下拉列表div并删除下拉的html 给鼠标添加滑动效果:onmouseenter:给每个下拉div添加 function addcolor(obj){} 记住:当前对象默认是js对象,需要转为jquery对象 先清除所有的背景色,再给指定对象添加背景 隐藏hide(),并删除内容html();  4.  记住 border : none ;去除边框    outline :none; 去除框线    input 默认会带有边框和框线    border-top:none;去除边框顶部的线    隐藏用display:none;    select下拉框的宽度不好控制就用div    onkeyup 键盘按下的时候就触发    去除输入框的首尾空格    eq==数组,获取元素,通过下标  对象.eq(index)  对象.prevAll();  先移除背景色再进行添加,否则就会给两个添加后  removeClass();   没有背景色就给最后一个添加颜色,通过带这个背景色的对象.prevAll().length判断  addClass添加样式,    获取HTML的值就用   对象.text(),input :val();

 

代码:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>   <head>     <base href="<%=basePath%>">          <title>百度提示框</title>     <style type="text/css">     #divkeywords{     border: solid 2px red;      width: 250px;     height: 25px;     }         #keywordid{     border: none;     outline: none;     font-size: 20px;     }         #divappend{     border: solid 2px red;      width: 250px;     border-top: none;     display: none;     }         .backcolor{     background: green;     }     </style>     <script type="text/javascript" src="js/jquery-1.9.1.js" charset="utf-8"></script>     <script type="text/javascript">     //当页面加载完成给页面添加键盘按下去就触发的事件     //event全局事件对象     $(function(){     $(document).keydown(function(event){     var eve = event||window.event;     //keyCode: 38-向上的箭头   40-向下的箭头   13-回车enter     //alert(eve.keyCode);     if(eve.keyCode==38){//背景颜色向上移动     //使input失去焦点     $("#keywordid").blur();     //判断divappend对象中是否有html     if($("#divappend").html()==""){     return;     }     //向上移动     //prevAll():查找当前元素之前所有的同辈元素     var varbg = $(".backcolor").prevAll().length;     //判断是否有背景颜色     if(varbg==0){     //删除背景颜色     $(".item").removeClass("backcolor");     //添加背景颜色  eq:同过下标来获取元素的对象     $(".item").eq($(".item").length-1).addClass("backcolor");     }else{     //删除背景颜色     $(".item").removeClass("backcolor");     //添加背景颜色     $(".item").eq(varbg-1).addClass("backcolor");     }     }else if(eve.keyCode==40){//背景颜色向下移动     //使input失去焦点     $("#keywordid").blur();     //判断divappend对象中是否有html     if($("#divappend").html()==""){     return;     }     //判断是否有背景颜色     if($(".item").hasClass("backcolor")){     //prevAll():查找当前元素之前所有的同辈元素         var varbg = $(".backcolor").prevAll().length;     //判断背景是否移动到最后一个元素     if(varbg==$(".item").length-1){     //删除背景颜色,再添加背景颜色         $(".item").removeClass("backcolor").eq(0).addClass("backcolor");     }else{     //删除背景颜色,再添加背景颜色         $(".item").removeClass("backcolor").eq(varbg+1).addClass("backcolor");     }         }else{     //删除背景颜色,再添加背景颜色     $(".item").removeClass("backcolor").eq(0).addClass("backcolor");     }     }else if(eve.keyCode==13){//回车--把带背景颜色的文本内容显示到input输入框中     //获取对象     $("#keywordid").val($(".backcolor").text());     //隐藏divappend,并且删除divappend里面的html     $("#divappend").hide().html("");          }     });         });          //当鼠标移动时触发的事件,给div添加背景颜色     function addcolor(obj){     //移除样式     $(".item").removeClass("backcolor");     //把当前对象添加样式     $(obj).addClass("backcolor");     //获取对象 $("#keywordid").val($(".backcolor").text()); //隐藏divappend,并且删除divappend里面的html     }          //移除div     function removediv(){     //隐藏divappend,并且删除divappend里面的html $("#divappend").hide().html("");      }     //百度提示框     function baidusuggest() {     //获取divappend对象 var vardivappend = $("#divappend"); //1:获取输入框里面的内容发送给后台服务器查询相关数据 var varval = $("#keywordid").val();     var valtrim = $.trim(varval);//去掉输入框内容的首尾空格     if(valtrim.length>0){     //alert(valtrim+"--"+valtrim.length);     //用jquery发送ajax     $.post("BaiduSuggest",{keyword:valtrim},function(result){     //判断长度是否大于0     if(result.length>0){     //alert(result);         //把数组类型的字符串转成数组         var vararray = JSON.parse(result);         //声明一个htmls         var htmls = "";         //遍历数组获取元素的值         for (var i = 0; i < vararray.length; i++) {         if(i<5){         htmls += "<div class='item' οnmοuseenter='addcolor(this)' οnclick='removediv()' >"+vararray[i]+" </div>";         } }         //先显示div,再给div里面添加html         vardivappend.show().html(htmls);     }else{     //alert("获取不到数据");     //隐藏divappend,并且删除divappend里面的html         vardivappend.hide().html("");         return;     }     });     }else{     //alert("空");     //隐藏divappend,并且删除divappend里面的html     vardivappend.hide().html("");     return;     } }          </script>   </head>      <body>     <div id="div01">     <div id="divkeywords"><input type="text" name="keyword" id="keywordid" value="" οnkeyup="baidusuggest();"/> </div>     <div id="divappend">     <!-- <div>张三 </div>     <div>张三1 </div>     <div>张三2 </div>     <div>张三3 </div> -->     </div>         </div>   </body> </html>

  
转载请注明原文地址: https://www.6miu.com/read-800294.html

最新回复(0)