代码之家  ›  专栏  ›  技术社区  ›  Kristen Grote

translatez视差滚动不起作用

  •  0
  • Kristen Grote  · 技术社区  · 7 年前

    我试图做一个简单,纯css视差部分的网页。我申请 perspective 到 body 元素和 preserve-3d 对于节容器,但背景图像的滚动速度并不慢,它们只是正常滚动。

    HTML:

    <div class="p-section">
        <div class="content"></div>
        <div class="bg"></div>
    </div>
    <div class="p-section">
        <div class="content"></div>
        <div class="bg"></div>
    </div>
    <div class="p-section">
        <div class="content"></div>
        <div class="bg"></div>
    </div>
    

    CSS:

    body {
        width: 100vw;
        height: 100vh;
        overflow-x: hidden;
        overflow-y: scroll;
        perspective: 10px;
    }
    .p-section {
        transform-style: preserve-3d;
        height: 100vh;
        position: relative;
    }
    .content,
    .bg {
        position: absolute;
        top: 0;
        left: 0;
        bottom: 0;
        right: 0;
    }
    .bg {
        transform: translateZ(-10px) scale(2);
    }
    

    这里有一个 CodePen .

    1 回复  |  直到 7 年前
        1
  •  0
  •   Kristen Grote    7 年前

    perspective 当应用于 body 元素。您需要将节包装在包含元素中并应用 观点 对此。

    HTML

    <div class="p-container">   
        <div class="p-section">
            <div class="content"></div>
            <div class="bg"></div>
        </div>
        <div class="p-section">
            <div class="content"></div>
            <div class="bg"></div>
        </div>
        <div class="p-section">
            <div class="content"></div>
            <div class="bg"></div>
        </div>
    </div>
    

    CSS

    .p-container {
        width: 100vw;
        height: 100vh;
        overflow-x: hidden;
        overflow-y: scroll;
        perspective: 10px;
    }
    

    Example CodePen