Эффект прокрутки CSS: проблемы переполнения и позиционирования - PullRequest
1 голос
/ 03 августа 2010

Я пытаюсь создать эффект прокрутки в чистом CSS, где «страницы» появляются / скользят друг над другом вместо того, чтобы как обычно двигаться по экрану.

Мое намерение состояло в том, чтобы иметь родительский элемент, который является относительным положением и прокруткой переполнения. Внутри этого находятся «окна», содержащие «страницу». В окнах скрыто переполнение, а страницы расположены абсолютно в верхней части родительского элемента и имеют одинаковый размер.

Если это будет работать так, как ожидалось, вы сможете увидеть страницу только тогда, когда ее окно отображается.

На самом деле, я просто вижу все страницы одновременно, игнорируя скрытое свойство переполнения их родителей, пока они находятся далеко за его пределами.

Я однажды видел этот эффект в дикой природе, но не могу вспомнить, где и как. Кто-нибудь знает, как это делается?

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <title>Newspaper Scroll Test</title>
    <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
    <link rel="stylesheet" href="style.css" type="text/css">
</head>
<body>
    <div id="content">
        <div class="post">
            <h3>Test</h3>
            <div>
            lorem ipsum dolor sit amet.
            </div>
        </div>
        <div class="post">
            <h3>Test</h3>
            <div>
            aap noot mies.
            </div>
        </div>
        <div class="post">
            <h3>Testje</h3>
            <div>
            fietspomp
            </div>
        </div>
        <div class="post">
            <h3>ttpttp</h3>
            <div>
            lorem ipsum dolor sit amet.
            </div>
        </div>
    </div>
</body>
</html>

css:

#content {
height: 200px;
width: 200px;
overflow: auto;
position: relative;
}

.post {
overflow: hidden;
height: 200px;
}

.post div {
position: absolute;
top: 50px;
left: 0;
}

.post h3 {
position: absolute;
top: 0;
left: 0;
}

Ответы [ 2 ]

0 голосов
/ 03 августа 2010

Совсем не то, что я хочу. Это просто создает стек сообщений. То, что я хочу, очень сложно объяснить словами.

Pepjin, это что вы пытаетесь сделать?

0 голосов
/ 03 августа 2010

Я верю , что это эффект , который вы собираетесь. Внесенные в ваш CSS изменения в основном относятся к классу .post:

.post {
    overflow: hidden; 

    position: absolute;
    z-index: 1;
    top: 50px;
    left: 0;

    height: 200px;
    background: #fff;
}

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

Чтобы показать другую страницу, вам просто нужно изменить ее z-index на более высокое значение, чем 1.

В качестве альтернативы, если вам нужен эффект прокрутки, когда посты располагаются один за другим, вы можете изменить CSS следующим образом:

.post {
    overflow: hidden;    
    height: 200px;
    background: #fff;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...