Я создаю для себя небольшой html файл, чтобы попробовать что-то новое. до сих пор у меня есть заголовок, фон и центральная область для контента. он находится в центре, и положение установлено как фиксированное.
Я хочу, чтобы это произошло, когда кто-то прокручивается вниз, центральная область будет двигаться вверх. Так что не будет большого белого пространства наверху. Кроме того, когда они прокручиваются вверх, поэтому центр находится ближе к вершине, он не будет проходить через заголовок.
Я уверен, что это можно сделать с помощью JavaScript. Но я не слишком уверен, как это сделать.
Простите, если это неясно.
Я рекомендую использовать jquery для этого.
Вы можете связать прослушиватель событий с событием scroll
, обработчик передает event object
со всей информацией, необходимой для достижения желаемого результата (scrolltop, pageX, pageY и т.д.).
После того как вы захватили событие прокрутки, вы можете указать, где прокручивается пользователь (как далеко вниз), и соответственно позиционировать ваш div.
Это можно сделать без использования jquery или javascript, если вы хотите делать то, что я думаю. http://jsfiddle.net/wN8c8/, установив свой контент на фиксированный размер и настроив содержимое на переполнение: auto; Аналогично, вы также можете установить фиксированное фоновой привязку страницы и создать иллюзию, что текст "появляется" без перемещения страницы. Вы можете, конечно, углубиться в нее, используя скрипты, но это действительно зависит от ваших намерений.
z-index также позволит вам создавать страницу в слоях, чтобы вы могли определять, что показывает и что скрывается за другими элементами страницы.
body {
background-color:yellow;
}
#header{
position:fixed;
width: 100%;
height:20px;
background-color:red;
z-index:2;
}
#content{
position:fixed;
width:80%;
height:60%;
background-color:#ddd;
overflow:auto;
margin:0px 10%;
z-index:1;
}
<div id="header"></div>
<div id="content">
This is some content.<br/>
This is some content.<br/>
This is some content.<br/>
</div>
Это может быть достигнуто с помощью javascript или JQuery (JQuery - самый простой из двух).
1.) Используйте произвольные пиксели для определения, когда div должен двигаться.
function scrolling() {
if ($(body).scrollTop() > 120px)
{
....perform div transition...
}
}
ИЛИ
2.) Используйте позицию целевого div, чтобы определить, когда div должен двигаться.
function scrolling() {
if ($(body).scrollTop() > $("#TargetDiv").offset().top;)
{
....perform div transition...
}
}
Если вы используете второе решение, убедитесь, что вы вызываете JQuery и этот скрипт после загрузки DOM, т.е. после </body>
. В противном случае он не сможет определить #TargetDiv.