JavaScript input box zoom display effect

Claim:

When the user enters content in the input box, the large font box above is condisplayed (the font size is larger)
Insert picture description here

Realization ideas:

  1. Form detection user input: add keyboard events to the form
  2. At the same time, get the value in the courier number valueand assign it to the conbox innerTextas the content
  3. If the content of the courier number is empty, hide the large font conbox

Code:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <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="请输入您的快递单号" class="jd">
    </div>
    <script>
        var con = document.querySelector('.con');
        var jd_input = document.querySelector('.jd');
        jd_input.addEventListener('keyup', function() {
     
     
            if (this.value == '') {
     
     
                con.style.display = 'none';
            } else {
     
     
                con.style.display = 'block';
                con.innerText = this.value;
            }
        });
        // 当失去焦点,就隐藏这个con盒子
        jd_input.addEventListener('blur', function() {
     
     
            con.style.display = 'none';
        });
        // 当获得焦点,就显示这个con盒子
        jd_input.addEventListener('focus', function() {
     
     
            if (this.value !== '') {
     
     
                con.style.display = 'block';
            }
        });
    </script>
</body>

</html>

Guess you like

Origin blog.csdn.net/Jack_lzx/article/details/109270215