【HTML+CSS】一个动画,让页面高级起来
山羊の前端小窝
2024年09月29日 18:29

案例:CSS差滚动相册

技术:HTML+CSS

作者:山羊の前端小窝


视频:


代码块
JavaScript
自动换行
复制代码
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>山羊の前端小窝</title>
    <style>
        * {
            box-sizing: border-box;
            padding: 0;
            margin: 0;
        }


        body {
            min-block-size: 100%;
            display: grid;
            place-content: center;
            /* 设置上下内边距为 30% 视口高度 */
            padding-block: 30dvh;
            background: #f7d6ff;
        }

        @keyframes slide-fade-in {
            from {
                opacity: 0;
                box-shadow: none;
                transform: scale(.8) translateY(15vh);
            }
        }

        .cards {
            display: grid;
            gap: 2rem;
            /* 自动排列 */
            grid-auto-flow: dense;
            grid-template-columns: repeat(4, 30ch);
        }

        .card {
            animation: slide-fade-in both;
            /* 使用浏览器的视图时间线,允许动画根据视口的变化进行同步 */
            animation-timeline: view();
            /* 定义动画时间范围 */
            animation-range: contain 0% contain 50%;
            border-radius: 10px;
            line-height: 6;
            box-shadow: 0px 8px 20px #00000022;
            font-size: 32px;
            letter-spacing: 5px;
            color: #fff;
            width: 100%;
            height: 100%;
            overflow: hidden;
            background-image: linear-gradient(to bottom right,
                    #91defe,
                    #99c0f9,
                    #bdb6ec,
                    #d7b3e3,
                    #efb3d5,
                    #f9bccc);
            display: flex;
            justify-content: center;
            align-items: center;
        }

        .card img {
            width: 100%;
            height: 100%;
        }

        .card:nth-of-type(4n) {
            grid-column: span 2;
        }

        .card:nth-of-type(5n) {
            grid-column: span 2;
        }

        .card:nth-of-type(7n) {
            grid-row: span 2;
        }
    </style>
</head>

<body>
    <div class="cards">
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card"> <img src="./01.png"></div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card"> <img src="./02.png"></div>
        <div class="card"> <img src="./03.png"></div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card"> <img src="./04.png"></div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card"> <img src="./05.png"></div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card"> <img src="./06.png"></div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card"> <img src="./07.png"></div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
        <div class="card">TEXT</div>
    </div>
</body>

</html>
复制成功