селект только вверх или вниз

by Denis Tverdokhlebov

HTML

<div class="text">
  Тут очень много текста на вашей странице. :)
</div>
<div class="select">
    <input type="hidden" name="item" value="1">
    <div class="selected">Arabian</div>
    <div class="option-list">
        <div class="option" data-select-val="0">All cuisines</div>
        <div class="option" data-select-val="1">Arabian</div>
        <div class="option" data-select-val="2">Asian</div>
        <div class="option" data-select-val="3">Bagels</div>
    </div>
</div>

CSS

*{
  color: #fff;
  font-family: Tahoma, Geneva, sans-serif;
  font-size: 14px;
  box-sizing: border-box;
  transition: background 0.2s ease-out 0ms;
}
body{
  background: rgba(39,39,41,.8);
}
.text{
  height: 150px;
  width: 300px;
  margin: 0 auto 10px;
  padding: 10px;
  border-radius: 2px;
  background: #006ea1;
  box-shadow: 0 0 10px 0 #000;
}
.select{
  width: 350px;
  height: 25px;
  padding: 0 10px;
  margin: 0 auto;
  border: 1px solid #777;
  border-radius: 2px;
  background: rgba(0,0,0,.2);
  position: relative;
}
.select:hover{
  border: 1px solid #aaa;
}
.select-active {
  border-radius: 0 0 2px 2px;
  border: 1px solid #aaa;
}
.selected{
  width: 100%;
  height: 100%;
  line-height: 23px;
  cursor: pointer;
}
.option-list{
  display: none;
  position: absolute;
  width: 100%;
  /* если нужен селект вниз */
  /* top:100%; */
  /* если нужен селект вверх */
  bottom: 100%;
  left: -1px;
  box-sizing: content-box;
  border: 1px solid #aaa;
  border-radius: 2px 2px 0 0;
  background: #6a6a6a;
  z-index: 2;
}
.option{
  width: 100%;
  height: 25px;
  line-height: 25px;
  padding: 0 10px;
  cursor: pointer;
}
.option:hover{
  background: rgba(255,255,255,.2);
  cursor: pointer;
}

JavaScript

$(function(){
	$('.selected').click(function(){
    	$('.option-list').slideToggle(100);
      $('.select').toggleClass('select-active');
	});
	$('.option').click(function(){
		select_val = $(this).attr('data-select-val');
		select_div = $(this).parent().parent();
		$(select_div).children('.selected').html($(this).html());
		$(select_div).children('input').val(select_val);
		
		$('.option-list').slideToggle(200);
		$('.select').toggleClass('select-active');
	});
});