码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • css实现贴合滚动


    先看一下实现效果

     我们在滚动的时候,内容会自动体贴容器,上面我只懂了一下滚轮,监测到我们操作后,内容自动滚动到和容器顶部贴合

    使用css+html 即可实现

    1. <div class="main">
    2. <section>我是内容1section>
    3. <section>我是内容2section>
    4. <section>我是内容3section>
    5. <section>我是内容4section>
    6. div>
    7. .main {
    8. scroll-snap-type: y mandatory; // y轴 贴合
    9. height: 100vh; // 视口
    10. overflow: auto;
    11. }
    12. section {
    13. width: 100%;
    14. height: 100vh;
    15. scroll-snap-align: start; // 贴合容器开始位置
    16. }

    scroll-snap-type

    父容器设置该属性,两个值,第一个值为 x轴 或 y轴

    第二个值为贴合模式  mandatory :发生滚动触发贴合

                                      proximity :当内容和容器距离小于一定距离时,触发贴合(这个距离我                                                             们不能自定义设置)

    看一下第二种模式,当我滑动到中部时,也没有触发贴合,到我滑动到下一个内容距离容器顶部一定距离时,松开鼠标,内容2自动贴合到容器

    scroll-snap-align

    这是内容的属性,设置对齐方式

    可选:start end center

    对应 头部位置对齐 底部位置对齐 居中位置对齐

    直接看这个例子

    1. height: 120vh;
    2. scroll-snap-align: end;

    现在内容的高是 120vh ,贴合后,底部对齐,可以看到我们的文字看不到了,上面例子中头部对齐的话,能看到头部的文字,居中应该页不用过多展示了

    scroll-padding-top

    当我们有一个固定的导航栏时,我们就需要这个属性来,指定贴合后,内容相当于容器的距离

    1. <div class="main">
    2. <nav>DaoHangnav>
    3. <section>我是内容1section>
    4. <section>我是内容2section>
    5. <section>我是内容3section>
    6. <section>我是内容4section>
    7. div>
    8. nav{
    9. position: fixed;
    10. top: 0;
    11. width: 100%;
    12. height: 100px;
    13. background: mediumseagreen;
    14. text-align: center;
    15. }

    比如我们加入一个 nav标签 固定到头部

    可以看到我们的贴合被挡住了,我们设置上 scroll-padding-top 值为偏离的距离,在这里例子中是nav的高度 100px

    1. scroll-snap-type: y mandatory;
    2. scroll-padding-top: 100px;

    自动到了指定位置,和顶部对齐。这都是 y 轴 的例子,x轴也是一样的配置用法。

    注:这个属性比较新有一定兼容问题

    想要深入了解可以去MDN查看文档

    scroll-snap-type - CSS(层叠样式表) | MDN (mozilla.org)

  • 相关阅读:
    Java如何从字符串中提取数字
    LeetCode·每日一题·828.统计子串中的唯一字符·数学
    【C语言】结构类型的定义和使用
    2022牛客多校九 G-Magic Spells(manacher+双哈希)
    怎么在火狐浏览器中添加IDM下载器扩展?
    驱动开发,stm32mp157a开发板的led灯控制实验(优化),使用ioctl函数,让write/read函数的专注读写功能
    学习MyBatis时遇到的细节问题
    Linux基本指令2——时间相关
    【Verilog】Verilog HDL中的操作符有哪些?有什么需要注意的地方?
    docker镜像原理
  • 原文地址:https://blog.csdn.net/paidaboluo/article/details/126609969
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号