<%@ 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>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<style >
*{padding:0;margin:0}
a{text-decoration:none;color:#333}
ul,li{list-stytle:none}
body{font-size:12px;font-family:"微软雅黑"}
/*设置背景*/
.bg{
background:url("images/bg.jpg") no-repeat fixed;/*不允许重叠*/
position:absolute;/*随着浏览器缩小图片改变*/
top:0;
left:0;
width:100%;
height:100%;
background-size:cover;/*防止产生空白边框*/
z-index:-1;
}
#container{width:640px;height:70px;margin:300px auto}
.inputs{width:560px;height:45px;border:0;float:left;text-indent:1em;font-family:"微软雅黑"
box-shadow:inset 0 0 1em #ccc/*文本框内层阴影*/
}
.btn_search{height:45px;background:#fff;display:inline-block;float:left;width:77px;text-align:center;line-height:45px;
border-left:1px solid #ccc;font-size:16px;}
.searbox{border:1px solid #ccc;height:45px;}
/*解决搜索框和按钮的1px的差别的方案*/
/*1.将input的边框设置为0或none*/
/*2.将a按钮设置成为display:inline-block,设置高度和宽度*/
/*3.给外层增加边框即可*/
#autoBox {display:none}
#autoBox li{height:35px;border-bottom:1px solid #ccc;line-height:35px;padding-left:5px;font-size:12px;}
#autoBox li:hover{background:#eaeaea}
</style>
</head>
<body style="background:#111">
<!-- 设置背景 -->
<div class="bg" ></div>
<!-- 搜索框 -->
<div id="container">
<div class="searbox"> <input type="text" class="inputs" id="keybox"/><a href="#" class="btn_search">搜索</a></div>
<div id="autoBox">
<!-- 找到数据框 -->
<ul id="ulBox">
</ul>
</div>
</div>
<script type="text/javascript">
/*自动补全
1.输入关键字的时候产生一个div层
触发键盘事件
2.层中就是产生的数据
*/
window.οnlοad=function(){
//找到input框
var keyboxDom=document.getElementById("keybox");
//找到自动提示框
var autoDom=document.getElementById("autoBox");
//找到数据框
var ulDom=document.getElementById("ulBox");
/*
键盘事件中:
onkeydown:按下去的时候事件
onkeyup:抬起来的时候执行的事件
onkeypress:离开的时候
*/
keyboxDom.οnkeydοwn=function(){
//拿到input宽度和高度
var inputwidth=this.offsetWidth;
var inputheight=this.offsetHeight;
/* autoDom.style.display="block";
autoDom.style.width=inputwidth+"px";
autoDom.style.height=(inputheight+200)+"px";
autoDom.style.marginTop="1px";
autoDom.style.background="#f9f9f9";*/
//1.输入@时显示提示框
var value=this.value;
if(value.indexOf("@")!=-1){
css(autoDom,{
display:"block",
width:inputwidth,
height:inputheight+200,
marginLeft:1,
padding:10,
border:"1px solid red ",
background:"#f9f9f9"
});
//2.如何拼接数据
var html= getMailHTML(value);
ulDom.innerHTML=html;
//3.如何选择产生的数据---绑定事件
};
};
function getMailHTML(value){
var arr=["163.com","sina.com","gmail.com","sohu.com","qq.com"];
var html="";
for(var i=0;i<arr.length;i++){
html+="<li οnclick='select(this);'>" +value+arr[i]+"</li>";
}
return html;
};
autoDom.οnmοuseleave=function(){
this.style.display="none";
};
//实现了jquery中的css方法
function css(dom,opts){
for(var key in opts){
var v=opts[key];
if(typeof v == "number")
{
v +="px";
}
dom["style"][key]=v;
}
}
};
//选中事件
function select(obj){
document.getElementById("keybox").value=obj.innerHTML;
};
</script>
</body>
</html>