Причина, по которой зависание останавливается, заключается в том, что под #one
li
s есть промежуток, в котором нечего парить.Измените значение .one {top:85px;}
на .one {padding-top:15px;}
или соответствующее значение, чтобы можно было что-то парить.
Кроме того, если вы хотите точно настроить, насколько далеко от вершины начинается заполнение, выможно использовать комбинацию padding-top
и top
, например .one{padding-top:25px;top:60px}
, чтобы раскрывающийся контент начинался с 85 пикселей сверху.
$(function() {
$('li#one').hover(function() {
var el_two = $(this);
var el_id = el_two.attr('id');
var el_link = el_two.attr('data-at');
var el_sel = '#' + el_link + '.' + el_id;
$(el_sel).toggleClass('is-active');
});
});
.menu__container {
margin: 0 auto;
padding: 10px;
}
.two {
display: none;
}
.is-active {
display: block;
}
.one {
display: none;
top: 60px;
padding-top: 25px;
position: absolute;
background: #777;
}
li#one>a {
padding: 10px;
background-color: #eee;
}
.menu__first {
background-color: #eee;
}
#one:hover>div.one {
display: block;
}
#one {
float: left;
display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="menu__container">
<ul class="menu__first">
<li id="one">
<a href="#"> first</a>
<div class="one">
<ul>
<li data-at="some-link" id="two">
<a href="#"> some</a>
</li>
<li data-at="path-link" id="two">
<a href="#"> path</a>
</li>
<li data-at="another-one" id="two">
<a href="#"> another one</a>
</li>
</ul>
<div class="dropdown">
<div class="two" id="some-link">some link text</div>
<div class="two" id="path-link">path link</div>
<div class="two" id="another-one">another one</div>
</div>
</div>
</li>
<li id="one">
<a href="#"> second</a>
<div class="one">
<ul>
<li>
<a href="#"> another some</a>
</li>
<li>
<a href="#"> another path</a>
</li>
</ul>
</div>
</li>
<li id="one">
<a href="#"> third</a>
<div class="one">
<ul>
<li>
<a href="#"> third some</a>
</li>
<li>
<a href="#"> third path</a>
</li>
</ul>
</div>
</li>
</ul>
</div>