Я отправил образец в качестве комментария, поэтому я предполагаю, что напишу полный ответ на него.
Разметка довольно прямолинейна, но есть некоторые важныепримечания для каждого раздела.
HTML
<div id="page">
<div id="header">
<div id="header-inner"> <!-- Note #1 -->
<img src="http://placehold.it/300x100" />
</div>
</div>
<div id="content">
<!-- Some Content Here -->
</div>
</div>
CSS
#page {
padding: 100px;
width: 300px;
}
#header,
#header-inner { /* Note #1 */
height: 100px;
width: 300px;
}
.scrolling { /* Note #2 */
position: fixed;
top: 0;
}
JavaScript
//jQuery used for simplicity
$(window).scroll(function(){
$('#header-inner').toggleClass('scrolling', $(window).scrollTop() > $('#header').offset().top);
//can be rewritten long form as:
var scrollPosition, headerOffset, isScrolling;
scrollPosition = $(window).scrollTop();
headerOffset = $('#header').offset().top;
isScrolling = scrollPosition > headerOffset;
$('#header-inner').toggleClass('scrolling', isScrolling);
});
Примечание # 1
Заголовок прокрутки будет прикреплен к верхней части страницы с помощью position: fixed
, но этот стиль удалит содержимое из потока содержимого, что приведет к скачку содержимого, если его контейнер не поддерживает исходную высоту.
Примечание# 2
Стили принадлежат CSS, однако может быть сложно правильно выровнять некоторые элементы с их исходным положением.Вам может потребоваться динамически установить свойство left
или right
css с помощью JavaScript.