当前位置: 首页 > news >正文

粘性文本整页滚动效果

效果展示

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

CSS 知识点

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

整体页面效果实现

<div class="container"><!-- 第一屏 --><div class="sec"><h2>Scroll Down</h2></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">S</span><span style="--i:2">t</span><span style="--i:3">i</span><span style="--i:4">c</span><span style="--i:5">k</span><span style="--i:6">y</span></h2></div><!-- 第八屏 --><div class="sec"><h2>Thank For Watching :)</h2></div>
</div>

使用 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;
}

实现每屏的样式

/* 每屏的样式,这里只是展示第一屏的 */
.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;
}

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

.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));
}

完整代码下载

完整代码下载

http://www.lryc.cn/news/188194.html

相关文章:

  • 【Oracle】Oracle系列十九--Oracle的体系结构
  • Flink-SQL join 优化 -- MiniBatch + local-global
  • 在c#中使用NPOI结合Magicodes.IE.excel将xlsx文件内存中转换为xls文件
  • 面试经典 150 题 14 —(数组 / 字符串)— 134. 加油站
  • 如何设计一个安全的对外接口?
  • 模拟pdf运行js脚本触发xss攻击及防攻击
  • 【数据结构】树和二叉树概念及其结构
  • 刘京城:我的《软件方法》学习经历(有彩蛋)
  • 浏览器详解(四) 渲染
  • idea新建一个module时,文件夹显示灰色/pom.xml文件显示灰色且中间有条横线
  • NoSQL数据库(林子雨慕课课程)
  • 模拟器运行在AndroidStudio内部,设置其独立窗口显示
  • 计算机网络 | 体系结构
  • ELK 处理 SpringCloud 日志
  • mac使用python递归删除文件夹下所有的.DS_Store文件
  • Gitlab+Jenkins自动化部署,解放双手
  • NNDL:作业3
  • dockers --cap-add 哪些值可以设置
  • golang常用库之-HTTP客户端请求库 grequests
  • 17基于matlab卡尔曼滤波的行人跟踪算法,并给出算法估计误差结果,判断算法的跟踪精确性,程序已调通,可直接运行,基于MATLAB平台,可直接拍下。
  • SpringCloud之Stream框架集成RocketMQ消息中间件
  • 与创新者同行!Apache Doris 首届线下峰会即将开启,最新议程公开!|即刻预约
  • vue解决:Parsing error: No Babel config file detected for ....
  • 算法题:K 次取反后最大化的数组和(典型的贪心算法问题)
  • Go语言中向[]byte数组中增加一个元素
  • CSS 布局案例: 2行、多行每行格数不定,最后一列对齐
  • 数据结构--算法、数据结构的基本概念
  • Edge浏览器下载文件被保存为 .crdownload 文件的问题小记
  • 6-10 单链表分段逆转 分数 15
  • 【单片机】17-温度传感器DS18B20