• 粘性文本整页滚动效果


    效果展示

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    CSS 知识点

    • background 相关属性综合运用
    • position 属性的 sticky 值运用
    • scroll-behavior 属性运用
    • scroll-snap-type 属性运用
    • scroll-snap-align 属性运用

    整体页面效果实现

    <div class="container">
      
      <div class="sec">
        <h2>Scroll Downh2>
      div>
    
      
      <div class="sec">div>
      <div class="sec">div>
      <div class="sec">div>
      <div class="sec">div>
      <div class="sec">div>
      <div class="sec">div>
    
      
      <div class="content">
        <h2>
          
          <span style="--i:1">Sspan>
          <span style="--i:2">tspan>
          <span style="--i:3">ispan>
          <span style="--i:4">cspan>
          <span style="--i:5">kspan>
          <span style="--i:6">yspan>
        h2>
      div>
    
      
      <div class="sec">
        <h2>Thank For Watching :)h2>
      div>
    div>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    使用 scroll 相关属性完成每屏滚动效果

    • scroll-snap-type属性说明

      设置了在有滚动容器的情形下吸附至吸附点的程度。

    • scroll-snap-align属性说明
      属性将盒子的吸附位置指定为其吸附区域(作为对齐对象)在其吸附容器的吸附口(作为对齐容器)中的对齐方式。这样我们在滚动每一屏的时候,只有滑到一半多后释放鼠标滑动页面就会吸附到最近的容器上。

    • scroll-behavior属性说明

      滚动的效果(立即滚动到吸附点或者平稳的滚动到吸附点)。

    .container {
      position: relative;
      width: 100%;
      height: 100vh;
      overflow: auto;
      scroll-behavior: smooth;
      scroll-snap-type: y mandatory;
    }
    
    .sec {
      position: relative;
      width: 100%;
      height: 100vh;
      display: flex;
      flex-flow: row wrap;
      justify-content: center;
      align-items: center;
      scroll-snap-align: center;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    实现每屏的样式

    /* 每屏的样式,这里只是展示第一屏的 */
    .sec:nth-child(1) {
      background: rgba(23, 143, 255, 0.685) url(./images/bg1.jpg);
      background-size: cover;
      background-attachment: fixed;
      background-position: center;
      background-blend-mode: multiply;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    实现第二屏开始的字符样式

    .content {
      position: absolute;
      top: 0;
      width: 100%;
      text-align: center;
    }
    
    .content h2 {
      position: relative;
      display: flex;
      justify-content: center;
    }
    
    .content h2 span {
      position: sticky;
      top: 0;
      line-height: 100vh;
      height: 100vh;
      color: #fff;
      font-size: 14vw;
      /* 页面中已定义了对应的字母偏移量基础值,获取对应的基础值就可以 */
      margin-top: calc(100vh * var(--i));
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    完整代码下载

    完整代码下载

  • 相关阅读:
    自定义字符串排序
    linux之权限管理命令
    基于JAVA幼儿影视节目智能推荐系统计算机毕业设计源码+系统+数据库+lw文档+部署
    公厕智能感应皂液盒,无液手机信息提醒
    K8s安装教程
    阿里云 ACK 容器服务生产级可观测体系建设实践
    Delphi 开发过程中简单的版本管理与回退
    Css定位
    python 中__init__ 作用
    #边学边记 必修5 高项:对人管理 第1章 项目人力资源管理 之 项目团队建设
  • 原文地址:https://blog.csdn.net/qq_33003143/article/details/133757890