模擬京東快遞單號查詢


要求:當我們在文本框中輸入內容時,文本框上面自動顯示大字號的內容

案例分析:1,快遞單號輸入內容時,上面的大號字體盒子顯示輸入框里面的文字

                  2,同時把快遞單號里面的值(value)獲取過來賦值給con盒子(innerHTML)作為內容

                  3,如果快遞單號里面內容為空,則隱藏大號字體盒子

                  4,注意:keydown和keypress在文本框里面的特點,它們兩個事件觸發的時候,文字還沒有                         落入文本框中,keyup事件觸發的時候,文字已經落入文本框里面了。

                  5,當我們失去焦點,就隱藏這個con盒子

                  6,當我們獲得焦點,並且文本框內容不為空,就顯示這個con盒子

關鍵代碼:

1,大字號con盒子下面css三角的樣式

.con::before{
            content: '';
            width: 0;
            height: 0;
            position: absolute;
            top: 28px;
            left: 18px;
            border: 8px solid #000;
            border-style: solid dashed dashed;
            border-color: #fff transparent transparent;
}    

2,完整代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        .search {
            position: relative;
            width: 178px;
            margin: 100px;
        }
        
        .con {
            display: none;
            position: absolute;
            top: -40px;
            width: 171px;
            border: 1px solid rgba(0, 0, 0, .2);
            box-shadow: 0 2px 4px rgba(0, 0, 0, .2);
            padding: 5px 0;
            font-size: 18px;
            line-height: 20px;
            color: #333;
        }
        
        .con::before {
            content: '';
            width: 0;
            height: 0;
            position: absolute;
            top: 28px;
            left: 18px;
            border: 8px solid #000;
            border-style: solid dashed dashed;
            border-color: #fff transparent transparent;
        }
    </style>
</head>
<body>
    <div class="search">
        <div class="con">123</div>
        <input type="text" placeholder="請輸入您的快遞單號">
    </div>
    <script>
        // 快遞單號輸入內容時, 上面的大號字體盒子(con)顯示(這里面的字號更大)
        // 表單檢測用戶輸入: 給表單添加鍵盤事件
        // 同時把快遞單號里面的值(value)獲取過來賦值給 con盒子(innerText)做為內容
        // 如果快遞單號里面內容為空,則隱藏大號字體盒子(con)盒子
        var con = document.querySelector('.con');
        var input = document.querySelector('input');
        input.addEventListener('keyup', function() {
                // console.log('輸入內容啦');
                if (this.value == '') {
                    con.style.display = 'none';
                } else {
                    con.style.display = 'block';
                    con.innerText = this.value;
                }
            })
            // 當我們失去焦點,就隱藏這個con盒子
        input.addEventListener('blur', function() {
                con.style.display = 'none';
            })
            // 當我們獲得焦點,就顯示這個con盒子
        input.addEventListener('focus', function() {
            if (this.value !== '') {
                con.style.display = 'block';
            }
        })
    </script>
</body>

 


免責聲明!

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



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