Как переместить div вверх при прокрутке вниз

0

Я создаю для себя небольшой html файл, чтобы попробовать что-то новое. до сих пор у меня есть заголовок, фон и центральная область для контента. он находится в центре, и положение установлено как фиксированное.

Я хочу, чтобы это произошло, когда кто-то прокручивается вниз, центральная область будет двигаться вверх. Так что не будет большого белого пространства наверху. Кроме того, когда они прокручиваются вверх, поэтому центр находится ближе к вершине, он не будет проходить через заголовок.

Я уверен, что это можно сделать с помощью JavaScript. Но я не слишком уверен, как это сделать.

Простите, если это неясно.

  • 1
    Можете ли вы опубликовать соответствующие HTML и CSS?
Теги:

3 ответа

1

Я рекомендую использовать jquery для этого.

Вы можете связать прослушиватель событий с событием scroll, обработчик передает event object со всей информацией, необходимой для достижения желаемого результата (scrolltop, pageX, pageY и т.д.).

После того как вы захватили событие прокрутки, вы можете указать, где прокручивается пользователь (как далеко вниз), и соответственно позиционировать ваш div.

http://api.jquery.com/scroll/

0

Это можно сделать без использования 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>
0

Это может быть достигнуто с помощью 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.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню