Я не мог использовать код вашего вопроса, потому что у меня не было всего вашего кода.Итак, я написал вам пример того, что вы хотите сделать со своей второй панелью инструментов.
Мой код не угловой, но у него тот же стиль CSS и обработчик событий Javascript для добавления / удаления класса взакрепите вторую панель инструментов сверху.Просто замените элементы своими собственными элементами, именами классов.
Уведомление
Прежде всего, взгляните на этот вопрос CSS Sticky buttons divне работает в IE 11 .
В некоторых случаях ваш элемент может иметь динамическую позицию и высоту, и вам нужно получить element.clientHeight
, чтобы получить положение фиксации вашегоэлемент.В этом случае вы должны использовать JS.
, который вы можете использовать t
document.addEventListener("scroll", function(){
var secondToolbar = document.querySelector('.toolbar-2');
var map = document.querySelector('.map');
if ((window.pageYOffset + 50) > (map.offsetTop + map.clientHeight))
secondToolbar.classList.add('fixed');
else
secondToolbar.classList.remove('fixed');
});
body {
margin: 0;
}
*{
box-sizing: border-box;
}
.container {
width: 300px;
height: 1000px;
padding-top: 50px;
}
.toolbar-1,
.toolbar-2,
.map {
display: block;
width: 300px;
color: #aaa;
text-align: center;
padding: 15px;
border: 1px solid #242424;
}
.toolbar-1 {
position: fixed;
height: 50px;
top: 0;
left: 0;
background-color: #f8f8f8;
}
.toolbar-2 {
height: 50px;
}
.toolbar-2.fixed{
position: fixed;
top: 50px;
left: 0;
}
.map {
height: 250px;
background-color: #f8f8f8;
}
<div class="container">
<div class="toolbar-1">First Toolbar</div>
<div class="map">Map</div>
<div class="toolbar-2">Second Toolbar</div>
</div>