原生JS實現百度搜索功能


  今天呢給大家分享一下自己用原生JS做的一個百度搜索功能,下面上代碼:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <!--百度iocn圖標-->
        <link rel="shortcut icon" href="https://www.baidu.com/favicon.ico" type="image/x-icon"/>
        <title>百度一下,你就知道</title>
        <style type="text/css">
            body{/*清除瀏覽器自帶樣式*/
                margin: 0;
                padding: 0;
            }
            .box{/*最大的盒子*/
                width: 100%;
                /*background: yellow;*/
                height: 636px;
                background-image:url("https://ss1.bdstatic.com/kvoZeXSm1A5BphGlnYG/skin/880.jpg?2");
                background-size: 100%;
                
            }
            .box_log{/*log盒子*/
                width: 100%;
            }
            
            .box_log img{/*百度log*/
                width: 19.8%;
                margin-left: 49.4%;
                transform: translate(-50%);
                margin-top: 38px;
                margin-bottom: 19px;
            }
            .box_text{/*text搜索框盒子大小*/
                width: 100%;
                height: 36px;
            }
            .log_img{/*input框中的小相機*/
                position: absolute;
                left: 865px;
                top: 202px;
            }
            #text{
                width: 540px;
                height: 36px;
                box-sizing: border-box;
                margin-left: 355px;
                margin-top: 3px;
                text-indent: 4px;
            }
            #btn{
                width: 100px;
                height: 36px;
                background: #3385FF;
                border: 0px;
                letter-spacing: 1px;
                color: white;
                margin-left: -5px;
                font-size: 15px;
                box-sizing: border-box;
                transform: translateY(2px);
                box-sizing: border-box;
            }
            #btn:hover{
                cursor: pointer;
            }
            #search{
                width: 540px;
                /*background: yellow;*/
                margin: 0;
                padding: 0;
                margin-left: 355px;
                list-style: none;
                display: none;
                border: 1px solid #E3E5E4; 
            }
            #search li{
                line-height: 36px;
                background: white;
            }
            #search li:hover{
                background: #F0F0F0;
            }
            .li1{
                text-indent: 4px;
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="box_log">
                <img src="../img/superlogo_c4d7df0a003d3db9b65e9ef0fe6da1ec.png"/>
            </div>
            <div class="box_text">
                <img src="../img/QQ圖片20180119115441.png" class="log_img"/>
                <input type="text" name="text" id="text" value=""/>
                <input type="button" name="bdyx" id="btn" value="百度一下" />
                <ul id="search">
                    <li class="li1" id="0" onclick="iptShow(this.id)"></li>
                    <li class="li1" id="1" onclick="iptShow(this.id)"></li>
                    <li class="li1" id="2" onclick="iptShow(this.id)"></li>
                    <li class="li1" id="3" onclick="iptShow(this.id)"></li>
                    <li class="li1" id="4" onclick="iptShow(this.id)"></li>
                    <li class="li1" id="5" onclick="iptShow(this.id)"></li>
                    <li class="li1" id="6" onclick="iptShow(this.id)"></li>
                    <li class="li1" id="7" onclick="iptShow(this.id)"></li>
                    <li class="li1" id="8" onclick="iptShow(this.id)"></li>
                    <li class="li1" id="9" onclick="iptShow(this.id)"></li>
                </ul>
            </div>
        </div>
        
        
        <script>
            var otext = document.getElementById("text");  //獲取input框
            ose = document.querySelector("#search");  //通過類名選擇器 選擇到search框
            lis = document.getElementsByClassName("li1");  //獲取所有的li
            otext.onkeyup = function(){   //當在input框中鍵盤彈起發生事件
                ose.style.display = otext.value?"block":"none";  /*三目運算符,如果otext.value的值部位空,則block。*/
                var osc = document.createElement("script");  /*創建一個script標簽*/
                osc.src = "https://sp0.baidu.com/5a1Fazu8AA54nxGko9WTAnF6hhy/su?wd="+otext.value+"&cb=houxiaowei";
                /*srcipt的src值引入百度的url,然后將otext文本框中輸入的內容連接到url,在后面在運行自己的方法*/
                document.body.appendChild(osc);
                /*將創建好的script標簽元素放入body中*/
                
                
                /*input框中按下回車根據input的值跳轉頁面*/
                if(event.keyCode==13){
                    /*將百度作為連接,傳入input的值,並跳入新的頁面*/
                    window.location.href = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="+otext.value
                }
            }
            
            var count = 0;
            var search = 0;
            var arr = ose.children; /*獲取ose下的所有li*/
            function houxiaowei(json){
                var jsonLength = 0;  /*json長度的初始值*/
//                    console.log(json.s);  打印json數據中的所有數據
                for(var x in json.s){   /*將循環的次數變成json的長度*/
                    jsonLength++;     
                }
//                    console.log(jsonLength);  打印json數據的長度
                for(var i=0;i<lis.length;i++){
                    if(jsonLength==0){  /*如果遍歷出的長度等於0,li的值為空*/
                        arr[i].innerHTML = null;   
                    }else{
                        if(json.s[i]!=null){/*如果json[i]的值不等於空,則將它的值放入li中*/
                            arr[i].innerHTML = json.s[i];
                        }
                    }
                }
                if(count==lis.length-1){
                    count=0;
                    search=0;
                }
                count++;
                search++;
            }
            
            /*單擊li中的值顯示在input框中*/
            function iptShow(thisId){
                otext.value = arr[thisId].innerHTML;
                window.location.href = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="+otext.value
            }
            /*單擊body中的任意地方隱藏li*/
            document.body.onclick = function(){
                ose.style.display = "none";
            }
        
            /*單擊百度btn的時候觸發,並跳到新的連接*/
            var btn = document.querySelector("#btn");
            btn.onclick = function(){
                /*獲取當前input的值*/
                var otext = document.getElementById("text").value;
                /*將百度作為連接,傳入input的值,並跳入新的頁面*/
                window.location.href = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd="+otext
            }  
        </script>
    </body>
</html>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM