2016-08-31 55 views
2

我有一個發光效果的搜索框。一旦用戶開始輸入,我只想讓發光效果消失。我怎樣才能做到這一點?我在我的搜索框的CSS部分下方提供了我的jQuery腳本。我認爲修改,但必須從jQuery。取消選擇搜索框發光效果作爲用戶類型

(function($) { 
 
    $(function() { 
 
    $('#wsite-header-search-form .wsite-search-input').attr('placeholder', 'Search Store ...') 
 
    }); 
 
}(jQuery)); 
 

 
$(document).ready(function() { 
 
    $("input[type='text']").on('focus', function() { 
 
    $('.wsite-search form').css({ 
 
     'boxShadow': '0px 0px 10px 2px #fafafa' 
 
    }); 
 
    }); 
 
    $("input[type='text']").on('blur', function() { 
 
    $('.wsite-search form').css({ 
 
     'boxShadow': '0px 0px 0px 0px #fafafa' 
 
    }); 
 
    }); 
 
});
.wsite-search form { 
 
    transition: 1s ease; 
 
    border-radius: 7px; 
 
    height: 30px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
 

 
<div class="wsite-search"> 
 
    <form id="wsite-header-search-form"> 
 
    <input type="text" class="wsite-search-input" /> 
 
    </form> 
 
</div>

多謝您的幫助!

+0

請修復您的代碼示例 – j08691

+0

到底在哪光暈效果? – Dekel

+0

@Dekel,發光效果包裹在我的網站上的搜索框 – k4r1

回答

1

您可以使用jQuery的keydown:https://api.jquery.com/keydown/

這裏是一個代碼,你提供了一個例子:

(function($) { 
 
    $(function() { 
 
    $('#wsite-header-search-form .wsite-search-input').attr('placeholder', 'Search Store ...') 
 
    }); 
 
}(jQuery)); 
 

 
$(document).ready(function() { 
 
    $("input[type='text']").on('focus', function() { 
 
    $('.wsite-search form').css({ 
 
     'boxShadow': '0px 0px 10px 2px #fafafa' 
 
    }); 
 
    }); 
 
    $("input[type='text']").keydown(function() { 
 
    $('.wsite-search form').css({ 
 
     'boxShadow': '0px 0px 0px 0px #fafafa' 
 
    }); 
 
    }); 
 
});
.wsite-search form { 
 
    transition: 1s ease; 
 
    border-radius: 7px; 
 
    height: 30px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
 

 
<div class="wsite-search"> 
 
    <form id="wsite-header-search-form"> 
 
    <input type="text" class="wsite-search-input" /> 
 
    </form> 
 
</div>

編輯:

這裏也是很多更簡單具有輸入和背景顏色的解決方案:

https://jsfiddle.net/m3c9y9pu/

$(function() { 
    $("input[type='text']").on('focus', function() { 
    $(this).css('background', 'yellow') 
    }); 

    $("input[type='text']").keypress(function() { 
    $(this).css('background', 'red') 
    }); 
}); 

input{ 
    background: red; 
} 

<input type="text" class="wsite-search-input" /> 
+0

讓我試試看看是否有用@Bagzli – k4r1

+0

是的,它工作!非常感謝你@Bagzli。你只是釘了它! – k4r1

+0

@ k4r1沒有問題,請將答案標記爲正確,然後如果是正確的解決方案。我還添加了更多簡化的解決方案來完成同樣的事情。 – Bojan

1

我加了keyup事件,請注意,我還檢查了keyup內,如果當前輸入的值不爲空。

這裏是一個工作版本:

(function($) { 
 
    $(function() { 
 
    $('#wsite-header-search-form .wsite-search-input').attr('placeholder', 'Search Store ...') 
 
    }); 
 
}(jQuery)); 
 

 
$(document).ready(function() { 
 
    $("input[type='text']").on('focus', function() { 
 
    $('.wsite-search form').css({ 
 
     'boxShadow': '0 0 10px 2px #ff0000' 
 
    }); 
 
    }); 
 
    $("input[type='text']").on('blur', function() { 
 
    $('.wsite-search form').css({ 
 
     'boxShadow': '' 
 
    }); 
 
    }); 
 
    $("input[type='text']").on('keyup', function() { 
 
    if ($(this).val() != '') { 
 
     $('.wsite-search form').css({ 
 
     'boxShadow': '' 
 
     }); 
 
    } else { 
 
     $('.wsite-search form').css({ 
 
      'boxShadow': '0 0 10px 2px #ff0000' 
 
     }); 
 
    } 
 
    }); 
 
});
.wsite-search form { 
 
    transition: 1s ease; 
 
    border-radius: 7px; 
 
    height: 30px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
 

 
<div class="wsite-search"> 
 
    <form id="wsite-header-search-form"> 
 
    <input type="text" class="wsite-search-input" /> 
 
    </form> 
 
</div>

+0

謝謝你的幫助@Dekel,但我的回答得到解決 – k4r1

+0

不客氣:) – Dekel

0

您可以使用jQuery的change

$(document).ready(function() { 
    $("input[type='text']").change(function() { 
    // If input is not empty 
    if($(this).val()) { 
     // Remove shadow 
    } else { 
     // Add shadow 
    } 
    }); 
}); 
+0

thx。非常感謝@大衛爲您的答案! – k4r1