JavaScript仿京東搜索框實例

馬上就到雙十一瞭,我們在京東淘寶購物,瘋狂剁手的同時,有沒有註意到京東的搜索框呢,除瞭能進行搜索內容以外,它的樣式又是如何實現的呢?

下面就分析一下如何實現仿京東的搜索框。

核心分析:

JavaScript部分:

1、當文本框獲取焦點的時候,div中的字體顏色變為rgb(200,200,200);

2、當文本框失去焦點事件發生時,div中的字體顏色變成原來的樣式#989898;

3、當文本框輸入內容時,div的屬性變為 none,表現效果為文字消失;

4、當清除文本框裡面內容時,divdiv的屬性變為 inline-block,表現效果為文字消失;

因為是在文本框裡面顯示出來的內容,改變的是表單元素,判斷文本框裡面是否有輸入內容,判斷的依據是  表單的value值是否為 空字符串。

實現代碼:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>仿京東搜索框</title>
    <style>
    *{
        margin: 0;padding:0;
    }
    .from{
        border:2px solid #e2231a;
        width:490px;
        height:36px;
        position:relative;
        margin:100px auto;
        font-size: 12px;

    }
    .text{
        position:absolute;
        line-height: 36px;
        left:27px;
        color:#989898;
        z-index:-1;
    }
    .search{
        position:absolute;
        left:22px;
        width:430px;
        height:34px;
        outline:none;
        border:1px solid transparent;
        background:transparent;
        line-height: 34px;
        overflow: hidden;

    }
    .button{
        position:absolute;
        right:0px;
        width:58px;
        height:36px;
        background-color: #e2231a;
        border:1px solid transparent;
        margin:auto;
        outline:none;
        cursor: pointer;
    }
    button:hover{
        background-color: #c81623;
    }
    span img{
        position:absolute;
        right:65px;
    }

    </style>
</head>
    <div class='from'>
        <div class='text'>暗夜遊戲本</div>
        <input type="text" class="search" value=''>
        <span class='photo' title="未選擇取任何文件">
            <img src="camera.png" alt="">
        </span>
        <button class='button'>
            <i><img src="search.png"  alt=""></i>
        </button>
    </div>
<body>
    <script>
    var div = document.querySelector('.from');
    var input = document.querySelector('.search');
    var text = document.querySelector('.text');
    input.onfocus = function(){
        text.style.color = 'rgb(200,200,200)'
    }
    input.onblur = function(){
        text.style.color = '#989898'
    }
    input.oninput = function(){
        text.style.display = 'none';
    if (input.value == '') {
        text.style.display = 'inline-block';
    };    }
    </script>
</body>
</html>

顯示效果:

1、未觸發事件的狀態

2、輸入框裡獲取焦點的狀態

3、輸入框裡輸入內容

4、刪除裡面內容後

5、CSS樣式效果(hover)

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: