移动端 滚动穿透

news2024/10/5 15:29:47

文章目录

  • 滚动穿透
    • 弹窗内容滚动到底部后带动底层页面滚动
    • 在弹窗出现时可以直接通过页面滚动条滚动
  • 禁用底层页面滚动
  • 弹出层将覆盖整个视口
  • 禁用触摸事件
  • 监听弹出层滚动位置
  • 阻止弹出层的滚动事件冒泡

滚动穿透

  • 当一个固定定位(fixed)或绝对定位(absolute)的弹出层(如模态框)覆盖在页面上时,用户在弹出层上滚动,页面底部的内容也会跟着滚动。
  • 滚动穿透问题的主要原因是浏览器在处理触摸事件(如 touchmove)时,会将事件传递给整个页面,而不仅仅是弹出层。当用户在弹出层上滚动时,浏览器会将触摸事件传递给底层页面,导致底层页面的内容也跟着滚动。

弹窗内容滚动到底部后带动底层页面滚动

在这里插入图片描述

在弹窗出现时可以直接通过页面滚动条滚动

在这里插入图片描述

禁用底层页面滚动

  • 当弹出层出现时,通过设置 overflow: hidden 禁用底层页面的滚动。这样,用户在弹出层上滚动时,底层页面将保持不动。

弹出层将覆盖整个视口

  • 使用 CSS position: fixed:将弹出层设置为固定定位(position: fixed),并设置其宽度和高度为 100%。这样,弹出层将覆盖整个视口,使用户无法滚动底层页面。

禁用触摸事件

  • 当弹出层出现时,通过设置 pointer-events: none 禁用底层页面的触摸事件。
  • 这样,用户在弹出层上滚动时,底层页面将不响应触摸操作,从而避免滚动穿透问题,当弹出层消失时去掉 pointer-events: none

监听弹出层滚动位置

  • 可以通过监听弹出层的滚动事件(scroll),在滚动到顶部或底部时阻止默认行为 event.preventDefault()

阻止弹出层的滚动事件冒泡

  • 在弹出层上添加一个事件监听器,阻止滚动事件(touchmove)的冒泡。这样,当用户在弹出层上滚动时,事件将不会传递到底层页面,从而避免滚动穿透问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/748739.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows10 网页版 上线!最具扩展性的webos

模仿Windows10 UI 框架 Vue3 点击进入github 链接: https://github.com/royalknight56/win10-vue3 本框架可以让你的页面像win10视窗系统一样,运行一个网页上的win10系统。 本框架可能是最具扩展性的webos 本框架相较于其他的特点是, 具有文件系统&am…

第二章:类与对象(上)

系列文章目录 文章目录 系列文章目录前言面向过程和面向对象初步认识类的引入类的定义类的两种定义方式成员变量命名规则的建议 类的访问限定符及封装访问限定符面试题 封装面试题 类的作用域类的实例化类对象模型如何计算类对象的大小类对象的存储方式猜测对象中包含类的各个成…

C语言字节序

C语言字节序分为大端序和小端序。 大端序: 高字节先存储,也就是数据的高字节存储在低地址中。 小端序: 低字节先存储,也就是数据的低字节存储在低地址中。 例如: short a 01234; char *p &a; printf(&qu…

基于Java+SpringBoot制作一个社区宠物登记小程序

制作一个社区宠物登记小程序,帮助社区居民登记和管理他们的宠物信息,以便更好地跟踪和维护社区中的宠物状况,通过社区宠物信息登记系统,社区居民可以更好地管理自己的宠物信息,并与其他宠物所有者共享资源和信息。这将有助于提高社区宠物的福利和安全,促进社区成员之间的…

业务流程管理系统是什么?企业业务流程有哪些?

随着企业规模的不断扩大和竞争的日益激烈,业务流程管理系统的重要性也越来越明显。通过对业务流程的全面管理和优化,企业可以提高工作效率、降低流程成本、优化流程质量,从而在市场竞争中获得更大的优势。 阅读本文您将了解: 一、…

【实战项目】c++实现基于reactor的高并发服务器

基于Reactor的高并发服务器,分为反应堆模型,多线程,I/O模型,服务器,Http请求和响应五部分 全局 反应堆模型 Channel 描述了文件描述符以及读写事件,以及对应的读写销毁回调函数,对应存储arg读…

查看某个三方依赖jar包是在哪个pom引入的(springboot+idea)

项目springboot1升级2版本,日志框架使用的是log4j,升级到springboot2版本某些依赖引入了logback依赖包,然后项目启动报错: 查看这个SLF4JLoggerContextFactory这个类是在哪个jar包下 使用idea的maven依赖图查看功能寻找是哪个p…

代码随想录打卡

这里写目录标题 1.数组部分1.1二分查找1.2移除元素1.3 有序数组的平方1.4长度最小的子数组1.5螺旋矩阵II 2. 链表部分2.1移除链表元素2.2设计链表2.3反转链表2.4两两交换相邻的节点2.5删除链表的倒数第n个节点 1.数组部分 1.1二分查找 class Solution {public int search(int[…

能耗感知虚拟光网络映射论文分析

1、M. Zhu, P. Gao, J. Zhang, X. Zeng, and S. Zhang, “Energy efficient dynamic virtual optical network embedding in sliceable-transponder-equipped eons,” in GLOBECOM 2017 - 2017 IEEE Global Communications Conference, 2017, pp. 1–6. 特点是:1&a…

干货 | 儿童智能手表数据安全要求标准设计

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。 一、选题与背景 儿童智能手表暴露的数据安全事件比较显著,我们主要针对这一个特殊的细分领域做研究。 二、研究报告 三、标准草案介绍 我们通过分析儿童智能手表的业务组成&#xff…

是不是考了cspm就能从事项目管理了?含金量高吗?

随着项目管理的发展,越来越多的人开始意识到项目管理的重要性。而CSPM(项目管理专业人员能力评价)则成为了很多人进入项目管理领域的门槛。但是,很多人对于CSPM的认识存在误区,认为只要考取了CSPM证书,就能…

信息的编码表示

文章目录 1 前言2 西文字符的编码表示——ASCII 码3 中文字符的编码表示3.1 区位码3.2 国标码3.3 机内码3.4 国标码与机内码 5 机外码 1 前言 在计算机的内部,所有数据都是通过二进制编码而保存的,计算机只能识别二进制。因此我们存储任何信息到计算机中…

QT_Creator格式化工具使用

QT_Creator代码格式化工具使用 为了确保代码格式整齐统一,使用代码格式化工具会将写的代码自动格式化以保证格式统一 Astyle: A Free, Fast, and Small Automatic Formatter for C, C, C/CLI, Objective-C, C#, and Java Source Code 一、C和C代码格式化…

C语言实现毕达哥拉斯树 你需要知道的一切!

分形几何学是一门研究不规则几何形态的几何学学科。它涉及数学上基于递归的反馈系统,通过不断迭代的方程式生成分形。尽管分形是数学构造,但它们也存在于自然界中,并因此在艺术作品中得到应用。 计算机的出现为推动分形几何学的发展起到了重…

自己架设的传奇会卡顿、掉线是什么原因?传奇卡顿怎么解决?

自己架设的传奇会卡顿、掉线是什么原因? 【M2相关设置】【怪物刷新】【机器人脚本】【个人定时器】【GOTO的使用】【NPC】【服务器配置】 因为平时接触传奇的用户比较多,所以也会遇到架设的传奇出现卡顿、掉线的情况,这究竟是为什么呢&#x…

迭代器模式:简化集合元素遍历的设计模式

迭代器模式是一种行为型设计模式,它提供了一种遍历集合元素的统一接口,使得我们可以在不暴露集合内部结构的情况下访问集合中的元素。迭代器模式可以简化集合的遍历操作,提高代码的可读性和可维护性。本文将详细介绍迭代器模式的原理、结构和…

java IO流(一) IO流概述 字节流

File类只能操作文件,但是不能操作文件中的内容,IO流则可以对文件或者网络中的数据进行读、写操作。 IO流分为两大派系: 1.字节流:字节流又分为字节输入流、字节输出流 2.字符流:字符流由分为字符输入流、字符输出流 字…

简化生活之让AI以指定格式输出

原文合集地址如下,有需要的朋友可以关注 本文地址 合集地址 今天京东也宣布即将发布了自己的大模型,那么使用AI大模型进行工作或者生活将是必不可少的步骤。 建立命令 AI大模型是一种生成式聊天对话模型,我们可以通过预先定义命令的方式…

【C语言】求a的连续和

问题描述 输入两个整数a和n , a的范围是[0,9],n的范围是[1,8],求数列之和S aaaaaa… aaa…a ( n个a )。如a为2、n为8时输出的是222222…22222222的和。 输入格式: 输入在一行中给出两个整数,先后表示a和n。 输出格式: 在一行中输出要求的数…

不会吧,都2023年了,还有人不知道jmeter和locust的区别?

在做性能测试时,通常都会借助一些压测工具来模拟大量的并发用户。目前业界压测工具种类繁多,比如Loadrunner、Jmeter、Locust、Ngrinder、Apache ab、Wrk、Webbench等,其中开源的要以java的jmeter和pythonlocust首当其冲,那么今天…