webAPI

模拟百度搜索框之键盘弹起事件

2019-05-15  本文已影响0人  椋椋夜色

<!DOCTYPE html>
<html lang="zh-CN">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title> 模拟百度搜索框之键盘弹起事件 </title>

    <!--键盘弹起事件:onkeyup:
    因为不管你输入什么,只要输入完了键盘都会弹起,换句话说,键盘弹起了你就是把这个字符输入-->

    <style>
        * {
            margin: 0;
            padding: 0;
        }

        body {
            font-size: 20px;
            background: url('../images/01.jpg')no-repeat ;
            background-size: 100%;
           
        }

        .box {
            width: 620px;
            height: 40px;
            margin: 200px auto;
            position: relative;
        }

        #txt {
            width: 498px;
            height: 38px;
            border: 1px solid #eee;
            font-size: 20px;     
        }

        #search {
            width: 120px;
            height: 43px;


        }

        #keywords {
            position: absolute;
            top: 163px;
            left: 0;
            background-color: rgb(210, 127, 243);
            list-style: none;
            width: 500px;
            ;
        }

        li {
            line-height: 24px;
        }
    
        img {
            margin: 25px 210px ;
            
        }

        /* li:hover{
            background-color: red;
        } */
    </style>
</head>

<body>
    <div class="box">
        <!-- 输入的地方 -->
        <div class="top">
            <img src="../images/02.png" alt="度娘" id="img">
            <input type="text" id="txt" /><input type="button" value="百度一下" id="search" />
        </div>

        <!-- 展现联想结果的地方 -->
        <ul id="keywords"></ul>

        <!--   步骤:
            1.给文本框加键盘弹起事件
            2.弹起事件里拿到输入的内容
            3.去数组遍历,看数组的元素有没有包括这个内容
            4.如果包括就做成li标签加到ul里面
            5.每次键盘弹起之前先清空上一次的结果
            6.如果输入的内容为空就return
     -->

        <script>
            var keywords = ["林更新", "林允儿", "武林外传", "王思聪", "王传福", "广东", "广西", "林丹枫",
                "王健林", "隔壁老王", "你打球像蔡徐坤" , "byb"];

            // 找到文本框
            var txt = document.getElementById('txt');
            document.getElementById('img').onclick = function () {
                window.open("https://www.baidu.com");
            }
            

            // 找到ul
            var ul = document.getElementById('keywords');;
            // 给文本框加键盘弹起事件
            txt.onkeyup = function () {
                // 清除上一次的输入结果
                ul.innerHTML = "";
                // 拿到文本框输入的内容去数组查是否存在
                var add = txt.value;
                // 如果输入的内容为空,根本就没必要去联想
                if (add == "") {
                     return;
                }
                // 遍历数组,看在不在每个元素里面
                for (var i = 0; i < keywords.length - 1; i++) {
                     // 如果输入的内容,在这个元素里面
                     if (keywords[i].indexOf(add) != -1) {
                        // 创建空元素 创建出来后只在内存中,没有加到页面上
                           var li = document.createElement('li');
                        // 添加文本 = 赋值 (把keywords[i]的值传给 li )
                          li.innerText = keywords[i] ;
                        //   将创建出来的元素添加到ul
                          ul.appendChild(li) ;
                     }
                }

            }
        </script>

</body>

</html>

上一篇下一篇

猜你喜欢

热点阅读