`
shuaigg.babysky
  • 浏览: 567580 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

css javascript autocomplete

阅读更多

<html>
    <head>
        <style>
            #belowDiv {
                border : solid 1px;
                background-color:red;
            }
            #bigDiv {
                margin:100 0 0 100;
            }
            #hiddenDiv {
                position : absolute;
                display : none;
                border : solid 1px;
                z-index:999999;
                left : 0;
                top : 0;
            }
            #hiddenDiv ul {
                margin-left:0px;
                margin-top : 0px;
                margin-bottom : 0px;
            }
            #hiddenDiv ul li {
                list-style-type : none;
                background-color:white;
                text-align:left;
                margin-left:0px;
            }
           
            #myComplete {
                width:200px;
            }
           
        </style>
        <script>
         var currentIndex = -1;
            function completeFunction(event) {
                var target = event.target?event.target:event.srcElement;
                var inputValue = target.value;
                inputValue = inputValue.replace(/[\s]+/g , "");
                if(inputValue != "") {
                    //得到html代码
                    var html = getItems();
                    //将 hiddenDiv 中的内容设置为html
                    var displayDiv = document.getElementById("hiddenDiv");
                    displayDiv.innerHTML = html;
                    //将其显示属性设置为显示
                    displayDiv.style.display = "block";
                    //得到输入框的宽度
                    var inputArea = document.getElementById("myComplete");
                    var inputWidth = getStyle(inputArea , "width");
                    //为hiddenDiv赋值宽度
                    displayDiv.style.width = inputWidth;
                    //获得左上角点坐标
                    var inputLeft = inputArea.offsetLeft;
                    var inputTop = inputArea.offsetTop;
                    var height = inputArea.offsetHeight;
                    //设置
                    displayDiv.style.left = inputLeft;
                    displayDiv.style.top = inputTop + height;
                    //监控按键,查看是否为上下和回车
                    var keyCode = event.keyCode;
                    //下40 上38 回车13
                    //得到一共多少个
                    var arrs = document.getElementsByTagName("LI");
                    var totalLength = arrs.length;
                    //处理上下键开始
                    if(keyCode == 40 || keyCode == 38 || keyCode == 13) {
                     if(keyCode == 40) {
                      currentIndex++;
                      if(currentIndex == (totalLength)) {
                       currentIndex = 0;
                      }
                     } else if(keyCode == 38) {
                      currentIndex--;
                      if(currentIndex == -1) {
                       currentIndex = totalLength - 1;
                      }
                     } else if(keyCode == 13) {
                      var selectValue = arrs[currentIndex].innerHTML;
                      //赋值
                      inputArea.value = selectValue;
                      //hiddenDiv消失
                      displayDiv.style.display = "none";
                      currentIndex = -1;
                     }
                     for(var i = 0 ; i < arrs.length ; i++) {
                      if(currentIndex == i) {
                       arrs[i].style.backgroundColor = "blue";
                      } else {
                       arrs[i].style.backgroundColor = "white";
                      }
                     }
                    }
                    //处理上下键结束
                }
            }
           
            function getItems() {
                var html = "<ul>";
                html += "<li onmouseover=\"changeBackground(event,'blue')\" onmouseout=\"changeBackground(event , 'white')\" onclick='chooseWhich(event)'>1111111</li>";
                html += "<li onmouseover=\"changeBackground(event,'blue')\" onmouseout=\"changeBackground(event , 'white')\" onclick='chooseWhich(event)'>1111112</li>";
                html += "<li onmouseover=\"changeBackground(event,'blue')\" onmouseout=\"changeBackground(event , 'white')\" onclick='chooseWhich(event)'>1111113</li>";
                html += "<li onmouseover=\"changeBackground(event,'blue')\" onmouseout=\"changeBackground(event , 'white')\" onclick='chooseWhich(event)'>1111114</li>";
                html += "<li onmouseover=\"changeBackground(event,'blue')\" onmouseout=\"changeBackground(event , 'white')\" onclick='chooseWhich(event)'>1111115</li>";
                html += "</ul>";
                return html;
            }
           
            //获得dom css的方法
            function getStyle( elem, name )
            {
                //如果该属性存在于style[]中,则它最近被设置过(且就是当前的)
                if (elem.style[name])
                {
                    return elem.style[name];
                }
                //否则,尝试IE的方式
                else if (elem.currentStyle)
                {
                    return elem.currentStyle[name];
                }
                //或者W3C的方法,如果存在的话
                else if (document.defaultView && document.defaultView.getComputedStyle)
                {
                    //它使用传统的"text-Align"风格的规则书写方式,而不是"textAlign"
                    name = name.replace(/([A-Z])/g,"-$1");
                    name = name.toLowerCase();
                    //获取style对象并取得属性的值(如果存在的话)
                    var s = document.defaultView.getComputedStyle(elem,"");
                    return s && s.getPropertyValue(name);
                //否则,就是在使用其它的浏览器
                }
                else
                {
                    return null;
                }
            }
            //改变div的背景色
            function changeBackground(event , color) {
    var target = event.target ? event.target : event.srcElement;
                target.style.backgroundColor = color;
            }
            //更改里面的值
            function chooseWhich(event) {
                var target = event.target ? event.target : event.srcElement;
                //得到值
                var innerHTML = target.innerHTML;
                //得到输入框
                var inputArea = document.getElementById("myComplete");
                //设置输入框中的值
                inputArea.value = innerHTML;
                //将hiddenDiv显示属性设置为隐藏
                var showDiv = document.getElementById("hiddenDiv");
                showDiv.style.display = "none";
                currentIndex = -1;
            }
        </script>
    </head>
    <body>
        <div id="bigDiv">
            <input type="text" id="myComplete" onkeyup="completeFunction(event)"/>
            <div id="belowDiv">
                <p>This is a paragraph</p>
                <p>This is a paragraph</p>
                <p>This is a paragraph</p>
                <p>This is a paragraph</p>
                <p>This is a paragraph</p>
            </div>
        </div>
        <div id="hiddenDiv">
           
        </div>
    </body>
</html>

 

分享到:
评论

相关推荐

    jquery.autocomplete的js+css

    在这个场景中,我们有两个关键文件:`jquery.autocomplete.css` 和 `jquery.autocomplete.min.js`。 1. **`jquery.autocomplete.css`**: 这个文件是 CSS 样式表,负责定义 `jQuery.autocomplete` 插件的外观和...

    juery autocomplete.css && juery.autocomplete.js文件下载

    1. **jquery.autocomplete.css**:这是一个CSS文件,用于定义Autocomplete组件的样式。它包括了下拉建议列表的外观,如颜色、字体、边框、背景、阴影等。这些样式确保了与页面其他元素的协调性,同时也可以根据项目...

    autocomplete css + js

    这个"autocomplete css + js"的压缩包很可能包含实现自动补全功能所需的CSS样式文件和JavaScript脚本。下面将详细讨论自动补全的功能原理、CSS与JS在其中的作用,以及如何结合这两个元素来创建一个有效的自动补全...

    jquery.autocomplete.js&css.rar

    本文将深入探讨`jquery.autocomplete.js`和`jquery.autocomplete.css`这两个核心文件,以及如何利用它们来创建一个完善的自动完成组件。 首先,`jquery.autocomplete.js`是jQuery Autocomplete插件的核心JavaScript...

    autocomplete——js,css文件+ 例子

    这个压缩包包含的资源是实现这一功能的JavaScript和CSS文件,以及相关的示例。接下来,我们将详细探讨JavaScript、CSS以及它们在自动补全功能中的应用。 **JavaScript** JavaScript 是一种广泛用于网页动态效果和...

    autocomplete插件使用的js及css

    本主题聚焦于“autocomplete插件使用的js及css”,我们将深入探讨JavaScript和CSS在实现自动补全功能中的角色、相关技术及其实现方法。 JavaScript是实现Autocomplete功能的核心,它负责处理用户输入、动态生成建议...

    jquery-ui-autocomplete

    - **自定义显示模板**:可以通过CSS和JavaScript自定义匹配项的展示样式,提升界面美观度。 - **事件驱动**:提供了丰富的事件接口,如`open`, `close`, `select`, `change`等,方便开发者进行扩展和定制。 - **多...

    前端项目-JavaScript-autoComplete.zip

    JavaScript自动完成,通常被称为autocomplete或autosuggest,是前端开发中常用的一种功能,它极大地提高了用户在输入时的效率和体验。这个"前端项目-JavaScript-autoComplete.zip"包含了一个轻量级的JavaScript实现...

    autoComplete.js:简单的自动完成的纯原始Javascript库

    autoComplete.js是一个简单的纯原始Javascript库,该库逐步为速度,多功能性以及与广泛的项目和系统无缝集成而设计,专为用户和开发人员而设计。 产品特点 纯香草Javascript 零依赖 简单易用 轻巧 快速燃烧 ...

    Jquery AutoComplete 使用demo

    在提供的 `JqueryAutoCompleteDemo` 压缩包中,通常包含了完整的 HTML、CSS 和 JavaScript 文件,展示了如何使用 jQuery AutoComplete 实现自动填充功能,包括本地数组和后台数据两种情况。通过分析和运行这个示例,...

    jquery autocomplete下载.rar

    - **jquery.autocomplete.css**:这是插件的样式表文件,定义了 Autocomplete 功能的外观,包括建议列表的样式、高亮选中项的样式等。通过自定义这个 CSS 文件,我们可以调整补全提示的显示效果,使其更好地融入...

    jqueery.autocomplete自动补全js+css

    jQuery Autocomplete是一款非常流行的JavaScript插件,用于实现输入框的自动补全功能。这个插件是基于jQuery库构建的,可以极大地简化网页中输入框的交互设计,提高用户体验。在给定的压缩包中,包含了以下三个核心...

    jquery插件-autocomplete

    然后,你可以通过CDN或者本地文件方式引入jQuery Autocomplete插件的JavaScript和CSS文件。通常,这两个文件会命名为`jquery.autocomplete.js`和`jquery.autocomplete.css`,对应压缩包中的`autoComplete`文件。 ``...

    autocomplete

    "工具"可能指的是一个外部库,比如jQuery UI的Autocomplete组件,或者是其他的JavaScript库,这些工具可以帮助开发者轻松地在他们的项目中集成自动补全。 压缩包中的文件名为"jquery_autocomplete.js",这很可能是...

    jquery.autocomplete

    同时,为了美观和布局,还需要引入 `jquery.autocomplete.css` 文件,该文件定义了插件的样式规则。 ### 2. 使用方法 要在网页上使用 `jQuery Autocomplete`,首先需要选择一个输入元素,并为其添加 `autocomplete...

    autocomplete-demo.zip

    此外,还需要一个div元素来承载Autocomplete的下拉列表,可以设置CSS样式以达到理想的视觉效果。 ```html &lt;div id="autocomplete-results"&gt; ``` 接下来,我们引入jQuery和Autocomplete的JS文件,这里假设它们已经...

    asp.net AutoComplete示例源码

    - `CSS`和`JavaScript`文件:样式和脚本文件,用于控制AutoComplete的外观和行为。 - `数据库连接`:可能有一个数据库连接字符串和相关的数据库访问代码,用于从数据库获取数据。 - `示例数据`:可能包含一些示例...

    jquery autocomplete示例

    首先,`jquery.autocomplete.css` 文件是样式表,用于定义 Autocomplete 元素的样式,如下拉列表的外观、高亮选中项等。在实际应用中,这个 CSS 文件可以自定义以适应项目的设计风格。 其次,`jquery-1.4.2.min.js`...

    jquery autocomplete js 文件

    可以修改 CSS 类名或直接在项目中包含 Autocomplete 提供的 CSS 文件,例如 `jquery.autocomplete.css`。 ### 7. 高级配置 Autocomplete 插件支持多种高级配置,如 `appendTo`(指定下拉菜单插入的位置)、`...

Global site tag (gtag.js) - Google Analytics