背景图滚动translateY代替background-position更优

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>doc</title>
    <style>
        *,
        *:before,
        *:after {
            box-sizing: border-box;
        }
        .pen {
            background-color: blue;
            position: absolute;
            top: 0px;
            left: 0px;
            height: 100%;
            width: 100%;
        }
        .panel {
            padding: 3rem;
            height: 50%;
        }
        .top {
            background-color: #3e69c3;
            background-image: url(http://scarbroughstudios.com/img/codepen.svg);
            background-position: center center;
            background-size: 500px;
            animation: scrollBad 5s linear infinite;
        }
        .bottom {
            background-color: #31cc70;
            overflow: hidden;
            position: relative;
        }
        .bottom .scroll {
            background-image: url(http://scarbroughstudios.com/img/codepen.svg);
            background-position: center center;
            background-size: 500px;
            position: absolute;
            top: 0px;
            left: 0px;
            height: 400%;
            width: 100%;
            z-index: 1;
            animation: scrollGood 5s linear infinite;
        }
        h1 {
            color: white;
            font-weight: 400;
            font-family: sans-serif;
            margin: 0;
            position: relative;
            z-index: 2;
        }
        @keyframes scrollBad {
            0% {
                background-position: 0 0;
            }
            100% {
                background-position: 0 -320px;
            }
        }
        @keyframes scrollGood {
            0% {
                transform: translateY(0);
            }
            100% {
                transform: translateY(-320px);
            }
        }
    </style>
</head>
<body>
    <h1>test</h1>
    <section class="pen">
        <div class="panel top">
            <h1>Animate: background-position</h1>
        </div>
        <div class="panel bottom">
            <h1>Animate: translateY</h1>
            <div class="scroll"></div>
        </div>
    </section>
</body>
</html>

 出处: https://wow.techbrood.com/fiddle/9614

posted @ 2021-06-28 09:54  全玉  阅读(123)  评论(0编辑  收藏  举报