`
mw666666
  • 浏览: 23779 次
  • 性别: Icon_minigender_1
  • 来自: 保定
社区版块
存档分类
最新评论

仿google的下拉提示框

    博客分类:
  • js
阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<script language="javascript">
var intIndex=0;arrList = new Array();
arrList[intIndex++] = "1sdfsdf.com";
arrList[intIndex++] = "a11sdafs.net";
arrList[intIndex++] = "b22dsafsdf";
arrList[intIndex++] = "c333asdfsadf";
arrList[intIndex++] = "4444dsafasdf";
arrList[intIndex++] = "dddsfddsafdsaf";
arrList[intIndex++] = "121213dsafsdaf";
arrList[intIndex++] = "43213asdfadsf";
arrList[intIndex++] = "dsa3121dasf3";
arrList[intIndex++] = "a213";
arrList[intIndex++] = "323313";
arrList[intIndex++] = "3213";
arrList[intIndex++] = "32213";
arrList[intIndex++] = "dsfsdddd";
arrList[intIndex++] = "ds11dfsfd";
arrList[intIndex++] = "ffdafd";
arrList[intIndex++] = "afdfd";
arrList[intIndex++] = "afd";
arrList[intIndex++] = "baffad";
arrList[intIndex++] = "2fda2fd";
arrList[intIndex++] = "dasd";
function smanPromptList(arrList,objInputId){
//alert("GGGGGGGGGG");
        this.style = "background:#E8F7EB;border: 1px solid #CCCCCC;font-size:14px;cursor: default;"
        if (arrList.constructor!=Array){alert('smanPromptList初始化失败:第一个参数非数组!'); return ;}
        window.onload =function() {
                                     arrList.sort(function(a,b){
//alert(a+b+"GGGGGGG");
                                              if(a.length>b.length)return 1;
                                             else if(a.length==b.length)return a.localeCompare(b);
                                             else return -1;
                                    })
            var objouter=document.getElementById("__smanDisp");//显示的DIV对象
            var objInput = document.getElementById(objInputId); //文本框对象
            var selectedIndex=-1;
            var intTmp; //循环用的:)
            if (objInput==null) {alert('smanPromptList初始化失败:没有找到"'+objInputId+'"文本框');return ;}
                //文本框失去焦点
                objInput.onblur=function(){
                    objouter.style.display='none';
                }
                //文本框按键抬起
                objInput.onkeyup=checkKeyCode;
                //文本框得到焦点
                objInput.onfocus=checkAndShow;
                function checkKeyCode(){
                    var ie = (document.all)? true:false
                    if (ie){
                        var keyCode=event.keyCode
                        if (keyCode==40||keyCode==38){ //下上
                            var isUp=false
                            if(keyCode==40) isUp=true ;
                            chageSelection(isUp)
                        }else if (keyCode==13){//回车
                            outSelection(selectedIndex);
                        }else{
                            checkAndShow()
                        }
                    }else{
                        checkAndShow()
                    }
                    divPosition()
                }
                function checkAndShow(){
                            var strInput = objInput.value
                            if (strInput!=""){
                                divPosition();
                                selectedIndex=-1;
                                objouter.innerHTML ="";
                                for (intTmp=0;intTmp<arrList.length;intTmp++){
                                    if (arrList[intTmp].substr(0, strInput.length).toUpperCase()==strInput.toUpperCase()){
                                        addOption(arrList[intTmp]);
                                    }
                                }
                                objouter.style.display='';
                            }else{
                                objouter.style.display='none';
                        }
                        function addOption(value){
                            objouter.innerHTML +="<div onmouseover=\"this.className='sman_selectedStyle'\" onmouseout=\"this.className=''\" onmousedown=\"document.getElementById('"+objInputId+"').value='" + value + "'\">" + value + "</div>"   
                        }
                }
                function chageSelection(isUp){
                    if (objouter.style.display=='none'){
                        objouter.style.display='';
                    }else{
                        if (isUp)
                            selectedIndex++
                        else
                            selectedIndex--
                    }
                    var maxIndex = objouter.children.length-1;
                    if (selectedIndex<0){selectedIndex=0}
                    if (selectedIndex>maxIndex) {selectedIndex=maxIndex}
                    for (intTmp=0;intTmp<=maxIndex;intTmp++){
                        if (intTmp==selectedIndex){
                            objouter.children[intTmp].className="sman_selectedStyle";
                        }else{
                            objouter.children[intTmp].className="";
                        }
                    }
                }
                function outSelection(Index){
                    objInput.value = objouter.children[Index].innerText;
                    objouter.style.display='none';
                }
                function divPosition(){
                    objouter.style.top        =getAbsoluteHeight(objInput)+getAbsoluteTop(objInput);
                    objouter.style.left        =getAbsoluteLeft(objInput);
                    objouter.style.width=getAbsoluteWidth(objInput)
                }
        }
        document.write("<div id='__smanDisp' style='position:absolute;display:none;" + this.style + "' onbulr> </div>");
        document.write("<style>.sman_selectedStyle{background-Color:#102681;color:#FFFFFF}</style>");
        function getAbsoluteHeight(ob){
            return ob.offsetHeight
        }
        function getAbsoluteWidth(ob){
            return ob.offsetWidth
        }
        function getAbsoluteLeft(ob){
            var mendingLeft = ob .offsetLeft;
            while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" ){
                mendingLeft += ob .offsetParent.offsetLeft;
                mendingOb = ob.offsetParent;
            }
            return mendingLeft ;
        }
        function getAbsoluteTop(ob){
            var mendingTop = ob.offsetTop;
            while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" ){
                mendingTop += ob .offsetParent.offsetTop;
                ob = ob .offsetParent;
            }
            return mendingTop ;
        }
}
smanPromptList(arrList,"inputer");
</script>
<input type="text" id="inputer" onmouseover="">
<body>
</body>
</html>

分享到:
评论

相关推荐

    仿GOOGLE下拉提示框方法

    ### 仿GOOGLE下拉提示框方法解析 在现代网页应用开发中,提供实时搜索建议是一种常见的用户体验增强技术。本文将详细介绍如何实现一种类似于Google下拉提示框的功能,该功能可以基于用户输入实时显示可能的匹配项。...

    仿google提示框 下拉提示框

    "仿Google提示框"和"下拉提示框"就是一种常见的UI设计元素,广泛应用于搜索引擎、输入法和其他需要提供智能建议的应用场景。这些提示框的设计灵感通常来源于Google的搜索框,它能在用户输入时提供即时的下拉建议,...

    用php+ajax写的仿百度谷歌搜索下拉自动提示框效果

    1. **HTML结构**:在HTML中,我们需要创建一个输入框(`&lt;input type="text"&gt;`)作为用户输入关键词的地方,以及一个隐藏的`&lt;div&gt;`元素,用于展示下拉提示框。 2. **JavaScript/jQuery**:使用JavaScript或者jQuery...

    ASP实例开发源码-飞飞模仿google下拉提示框输入框 v1.7 Ajax 兼容火狐.zip

    ASP实例开发源码—飞飞模仿google下拉提示框输入框 v1.7 Ajax 兼容火狐.zip ASP实例开发源码—飞飞模仿google下拉提示框输入框 v1.7 Ajax 兼容火狐.zip ASP实例开发源码—飞飞模仿google下拉提示框输入框 v1.7 Ajax ...

    仿美团下拉刷新

    在移动应用开发中,"仿美团下拉刷新"是一个常见的功能设计,主要目的是提供一个用户友好的界面,让用户能够轻松地获取更新的数据。这个功能在美团、大众点评等生活服务类应用中广泛应用,增强了用户的交互体验。下面...

    像Google一样的下拉提示框

    ### 像Google一样的下拉提示框:JS实现详解 #### 一、引言 在Web开发中,提供用户友好的交互体验是非常重要的一个环节。其中,“下拉提示框”是一种常见的UI设计模式,用于帮助用户快速定位并选择输入项。这种设计...

    基于ASP的飞飞模仿google下拉提示框输入框 v1.7 Ajax 兼容火狐.zip

    【标题】"基于ASP的飞飞模仿google下拉提示框输入框 v1.7 Ajax 兼容火狐.zip"是一个包含ASP(Active Server Pages)技术实现的搜索输入框功能的项目,它模仿了Google的下拉提示效果,并且支持Ajax(Asynchronous ...

    飞飞模仿google(suggest)下拉提示框v1.6.rar

    综上所述,"飞飞模仿google(suggest)下拉提示框v1.6.rar"是一个包含实现谷歌下拉提示功能的代码库和相关文档的项目,涵盖了前端开发、后端数据处理、用户体验设计等多个方面的技术知识。通过解压并研究这些文件,...

    仿google下拉 php版、asp版

    在仿Google下拉搜索框中,Ajax负责监听用户在输入框中输入的字符,并实时发送请求到服务器获取匹配的建议。 2. **PHP**:PHP是一种广泛使用的开源脚本语言,特别适用于Web开发,可以嵌入HTML中。在这个项目中,PHP...

    模仿google下拉提示框输入框 Ajax 兼容火狐

    此程序使用方便简单、易用灵活 ... 更新说明: 1.支持xhtml 2.兼容IE6,IE7,FF 3.支持input显示与value分离【以隐藏域方式提交数据】 4.支持下拉框按钮 5.支持显示结果数量 ...16.当输入框失去焦点时,提示框会自动隐藏

    飞飞模仿google下拉提示框输入框.rar

    软件介绍 此小程序是模仿Google(sgguest)输入提示框所编写 亦可用于用户注册邮箱时的提示 此程序使用方便简单、易用灵活 且不限Asp、php、net 更新说明: 1.支持xhtml 2.兼容IE6,IE7,FF 3.支持input显示与...

    ajax 仿google下垃菜单提示框

    **Ajax 仿Google下拉菜单提示框** Ajax(Asynchronous JavaScript and XML)是一种在无需刷新整个页面的情况下,能够更新部分网页的技术。它极大地提升了用户体验,使得网页交互更加流畅。在这个项目中,我们讨论的...

    ASP源码—飞飞模仿google下拉提示框输入框 v1.7 Ajax 兼容火狐.zip

    【ASP源码—飞飞模仿google下拉提示框输入框 v1.7 Ajax 兼容火狐.zip】这个压缩包包含了一个基于ASP技术实现的、模仿Google搜索下拉提示框功能的网页输入框组件。该组件利用了Ajax(异步JavaScript和XML)技术,能够...

    仿照百度,google的输入框提示下拉列表

    标题中的“仿照百度,google的输入框提示下拉列表”指的是实现类似百度和Google搜索引擎在用户输入关键词时,自动下拉显示出与输入内容相关的搜索建议功能。这种功能在网页开发中常见,能够提高用户体验,让用户快速...

    仿百度 谷歌下拉提示 纯jquery 实现

    标题中的“仿百度 谷歌下拉提示 纯jquery 实现”指的是利用JavaScript库jQuery来创建一种功能,该功能模拟了百度和谷歌搜索引擎在用户输入时显示下拉建议的效果。这种效果能够提高用户体验,因为用户无需完整输入...

    JSuggest--模仿google,百度下拉提示框输入框 Ajax 兼容火狐(HOT)

    **JSuggest——实现Google、百度风格的下拉提示框** 在网页开发中,为了提高用户体验,经常需要在用户输入时提供即时的建议或提示。JSuggest是一个JavaScript库,专门用于模仿Google和百度搜索框的下拉提示功能。...

    Ajax仿google搜索提示Asp数据库版 -ASP源码.zip

    【Ajax仿Google搜索提示Asp数据库版 - ASP源码】是一个基于ASP技术实现的搜索提示功能,它模拟了Google搜索引擎的实时搜索建议效果。在网页中输入关键字时,该功能能够快速从数据库中检索相关数据,并实时显示为下拉...

    仿google、baidu下拉(两种方法实现、自己选择)

    其中,智能下拉补全功能是常见的一种交互方式,尤其在搜索引擎如Google和百度中广泛使用。这种功能可以在用户输入关键词时,提供相关的搜索建议,帮助用户快速找到所需信息。本教程将介绍两种实现这种功能的方法,供...

    仿baidu,google出现下拉菜单

    标题中的“仿baidu,google出现下拉菜单”指的是在网页搜索框中实现类似百度和谷歌的自动补全功能,即用户在输入关键词时,系统会根据已输入的部分字符预测可能的完整搜索词,并在下拉菜单中显示这些推荐选项。...

    仿Google浏览器UI界面源码

    【标题】:仿Google浏览器UI界面源码 在IT领域,设计和开发用户界面(UI)是一项关键任务,尤其对于一款流行的浏览器来说。Google浏览器以其简洁、高效的界面设计获得了全球用户的喜爱。仿制Google浏览器的UI界面...

Global site tag (gtag.js) - Google Analytics