JSFiddle - React, Tailwind, and code Playground
by alonIL
HTML
<input type="text" class="someInput">
<div class="wrapper" style="display:none";>
<div class="outer_div">
<div class="inner_div">
<div class="element element-hover">USA </div>
<div class="element">UK </div>
<div class="element">SPAIN </div>
<div class="element">FRANCE </div>
<div class="element">ITALY </div>
<div class="element">ISRAEL </div>
<div class="element">AUSTRALIA </div>
<div class="element">GERMANY </div>
<div class="element">BELGIUM </div>
<div class="element">IRELAND </div>
</div>
</div>
</div>
CSS
.wrapper {
border: 1px solid #d8d8d8;
position: absolute;
z-index: 9999999999;
background-color: white;
-webkit-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
-moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
}
.outer_div {
width: 403px;
background-color: white;
height: 116px;
overflow: hidden;
}
.inner_div {
overflow-y: scroll;
overflow-x: hidden;
max-height: 100%;
width: 100%;
}
.element {
width: 100%;
height: 28px;
line-height: 28px;
cursor: pointer;
border-bottom: 1px solid #d8d8d8;
padding-left: 10px;
font-weight: 500;
font-size: 14px;
color: #646464;
}
.element-hover {
background-color: #f5f5f5 !important;
}
}
JavaScript
$(".someInput").on("keyup", function(e) {
$(".wrapper").show();
if (e.which == 40) {
$('.element:not(:last-child).element-hover').removeClass('element-hover').next().addClass('element-hover');
} else if (e.which == 38) {
$('.element:not(:first-child).element-hover').removeClass('element-hover').prev().addClass('element-hover');
}
});