类似google提示窗口
来源:互联网 发布:张容铭javascript下载 编辑:程序博客网 时间:2024/04/28 13:43
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="JavaScript">
var autolist = ["asdasdf","aasd","aidanofiuads","asdfasdf","argsgsr","taeta"];
function JSearcher(elementId,count){
var g;
var rect;
var currentRow=-1;
var Num = count;
g = document.getElementById(elementId);
rect = g.getBoundingClientRect();
/*初始化工作*/
/*创建容器*/
var oo = document.createElement("div");
oo.style.left = rect.left;
oo.style.top = rect.top+20;
//oo.style.backgroundColor = "#FF0000";
oo.style.position = "absolute";
oo.style.border = "1px solid black";
oo.style.width=rect.right-rect.left;
oo.style.display="none";
/*创建结果表格*/
rtTable = document.createElement("table");
rtTable.cellpadding = 0;
rtTable.cellspacing = 0;
rtTable.border = 0;
rtTable.style.width = rect.right-rect.left;
for(var i=0;i<count;i++){
rtTR = rtTable.insertRow(rtTable.rows.length);
rtTR.style.width = rect.right-rect.left;
rtTD = rtTR.insertCell(0);
rtTD.innerText="";
rtTR.style.width = rect.right-rect.left;
rtTD.onmouseover = function(){
var row = window.event.srcElement.parentElement.rowIndex;
selRow(row);
currentRow = row;
}
rtTD.onmouseout = function(){
this.bgColor ="";
}
rtTD.onclick = function(){
oo.style.display = "none";
}
}
g.onkeyup = function(){
switch(event.keyCode){
case 38://up
currentRow = currentRow-- > 0 ? currentRow : 0;
selRow(currentRow);
break;
case 40://down
currentRow = currentRow++ < (Num-1) ? currentRow:(Num-1);
selRow(currentRow);
break;
case 13:
show(false);
break;
default:
update();
show(true);
}
}
oo.appendChild(rtTable);
document.body.appendChild(oo);
/*设定选中的项目高亮显示*/
this.selRow = function(index){
for(i=0;i<Num;i++){
tdt = rtTable.rows(i).cells(0);
if(i==index){
tdt.bgColor ="#00FF00";
g.value = tdt.innerText;
}else{
tdt.bgColor="";
}
}
}
/*更新搜索结果*/
this.update = function(){
for(i=0;i<count;i++){
rtTable.rows(i).style.display="none";
}
Num = autolist.length < count ? autolist.length : count;
for(i=0;i<Num;i++){
tdt = rtTable.rows(i).style.display="";
tdt = rtTable.rows(i).cells(0);
tdt.innerText = autolist[i];
}
}
/* 显示层*/
this.show = function(flag){
if(flag){
oo.style.display = "";
}else{
oo.style.display = "none";
}
}
document.body.onclick = function(){
show(false);
}
}
</script>
</head>
<body onLoad="JSearcher('gg',10);">
关键字:<input type="text" name="gg" id="gg" >
</body>
</html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
<script language="JavaScript">
var autolist = ["asdasdf","aasd","aidanofiuads","asdfasdf","argsgsr","taeta"];
function JSearcher(elementId,count){
var g;
var rect;
var currentRow=-1;
var Num = count;
g = document.getElementById(elementId);
rect = g.getBoundingClientRect();
/*初始化工作*/
/*创建容器*/
var oo = document.createElement("div");
oo.style.left = rect.left;
oo.style.top = rect.top+20;
//oo.style.backgroundColor = "#FF0000";
oo.style.position = "absolute";
oo.style.border = "1px solid black";
oo.style.width=rect.right-rect.left;
oo.style.display="none";
/*创建结果表格*/
rtTable = document.createElement("table");
rtTable.cellpadding = 0;
rtTable.cellspacing = 0;
rtTable.border = 0;
rtTable.style.width = rect.right-rect.left;
for(var i=0;i<count;i++){
rtTR = rtTable.insertRow(rtTable.rows.length);
rtTR.style.width = rect.right-rect.left;
rtTD = rtTR.insertCell(0);
rtTD.innerText="";
rtTR.style.width = rect.right-rect.left;
rtTD.onmouseover = function(){
var row = window.event.srcElement.parentElement.rowIndex;
selRow(row);
currentRow = row;
}
rtTD.onmouseout = function(){
this.bgColor ="";
}
rtTD.onclick = function(){
oo.style.display = "none";
}
}
g.onkeyup = function(){
switch(event.keyCode){
case 38://up
currentRow = currentRow-- > 0 ? currentRow : 0;
selRow(currentRow);
break;
case 40://down
currentRow = currentRow++ < (Num-1) ? currentRow:(Num-1);
selRow(currentRow);
break;
case 13:
show(false);
break;
default:
update();
show(true);
}
}
oo.appendChild(rtTable);
document.body.appendChild(oo);
/*设定选中的项目高亮显示*/
this.selRow = function(index){
for(i=0;i<Num;i++){
tdt = rtTable.rows(i).cells(0);
if(i==index){
tdt.bgColor ="#00FF00";
g.value = tdt.innerText;
}else{
tdt.bgColor="";
}
}
}
/*更新搜索结果*/
this.update = function(){
for(i=0;i<count;i++){
rtTable.rows(i).style.display="none";
}
Num = autolist.length < count ? autolist.length : count;
for(i=0;i<Num;i++){
tdt = rtTable.rows(i).style.display="";
tdt = rtTable.rows(i).cells(0);
tdt.innerText = autolist[i];
}
}
/* 显示层*/
this.show = function(flag){
if(flag){
oo.style.display = "";
}else{
oo.style.display = "none";
}
}
document.body.onclick = function(){
show(false);
}
}
</script>
</head>
<body onLoad="JSearcher('gg',10);">
关键字:<input type="text" name="gg" id="gg" >
</body>
</html>
- 类似google提示窗口
- 类似google自动提示功能
- 类似google动态搜索提示
- asp+ajax实现类似google搜索提示
- 类似GOOGLE实现下拉框列表提示
- 搜索功能提示(类似google和baidu)
- ext 类似百度、google搜索自动提示
- 类似MSN、QQ消息提示窗口
- 类似MSN右下角提示的窗口效果
- 文本框提示程序,类似Google智能小提示
- autoComplete代码实现 --类似Google下搜索提示
- [Flex]类似Google搜索提示的两种做法
- ASP+AJAX做类似google的搜索提示
- 利用SuggestFrameWork开发类似Google搜索提示效果
- 类似google的结果提示框 和 ToolTips 控件
- 利用SuggestFrameWork开发类似Google搜索提示效果
- AJAX实例二:实现类似Google的搜索提示【原著】
- Ajax AutoComplete for jQuery(类似google,baidu的提示功能)
- 人生建议
- 说话艺术12条
- Spring2.0配置文件加载util标签的Schema
- 诊断 Java 代码: 轻松掌握 Java 泛型
- 设置IE每次访问页面是检查所存网页的较新版本
- 类似google提示窗口
- 打印
- 新编日语-第6课 読解文
- Java中的基本类型和引用类型变量的区别
- 批处理文件(bat)语法
- Spring的ApplicationContext加载多个配置文件的三种方式
- QQzone又多了一个隐私设置吗?挺好...挺好...
- Win2000服务全集
- Java Servlet API