首页 > 其他分享 >面试题: 前端处理滚动穿透这个顽疾

面试题: 前端处理滚动穿透这个顽疾

时间:2023-11-02 17:15:09浏览次数:38  
标签:面试题 元素 滚动 顽疾 穿透 事件 overflow 冒泡

诚如你所知: 滚动穿透是指在移动端滑动页面的过程中,页面滚动受到了触摸事件的干扰,导致无法流畅地滚动,这主要是由于事件冒泡造成的。解决方法如下:

  1. 监听 touchmove 事件,阻止默认行为

监听 touchmove 事件,阻止事件的默认行为,防止事件冒泡到父元素上。

  1. 禁止滚动

可以通过 overflow 属性禁止滚动。

body {
  overflow: hidden;
}

注意:如果滚动穿透出现在滑动嵌套元素中,则需要修改父元素和子元素的 overflow 属性,将两者都设置为 auto。

以上两种方式都能有效防止滚动穿透,但都会影响正常的滚动效果。因此,可以使用以下方式进行优化:

  1. 设置滚动区域

在子元素中添加 css 属性 touch-action: none; 可以避免事件冒泡。

 

标签:面试题,元素,滚动,顽疾,穿透,事件,overflow,冒泡
From: https://www.cnblogs.com/lelouchulu/p/17805794.html

相关文章

  • React面试题: useCallBack()与React.memo的区别与使用常见场景
    React.usecallback与React.memo的区别:React.useCallback和React.memo是两种不同的优化方式:主要功能:它们都可以避免不必要的渲染,提高React应用的性能。React.useCallback是Hoc(高阶组件)的解决方案,可以用于优化函数组件和Class组件,注意这里适用于React高阶组件的渲染解......
  • 7. 从零开始编写一个类nginx工具, HTTP及TCP内网穿透原理及运行篇
    wmproxywmproxy是由Rust编写,已实现http/https代理,socks5代理,反向代理,静态文件服务器,内网穿透,配置热更新等,后续将实现websocket代理等,同时会将实现过程分享出来,感兴趣的可以一起造个轮子法项目++wmproxy++gite:https://gitee.com/tickbh/wmproxygithub:https://github.com/tic......
  • bash脚本面试题
    (20231102)面试题:三剑客专题|cnblogs|ZhangHefind找出/test.dir目录下的文件名中包含test关键字的文件并将其全部删除方法一:使用find命令和通配符配合删除文件find/test.dir-typef-name'*test*'-execrm{}+解释:find/test.dir:在/test.dir目录下进行查找......
  • 前端面试题之代码输出(十七)
    书接之前代码输出题目,异步&事件循环前端面试题之代码输出前端面试题之代码输出二前端面试题之代码输出三前端面试题之代码输出四前端面试题之代码输出五前端面试题之代码输出六前端面试题之代码输出七前端面试题之代码输出八前端面试题之代码输出九前端面试题之代码输出十前端面试题......
  • Java基础面试题收集(1)
    @目录1.一个“.Java"源文件中是否可以包括多个类(不是内部类)?有什么限制?2.Java有没有goto?3.&于&&的区别4.在Java中如何跳出当前的多重嵌套循环?5.Switch语句能否用在byte,long,String上?6.shorts1=1;s1=s1+1;有什么错?shorts1=1;s1+=1;有什么错?7.char型变量中能不能存储一个......
  • 转 软件测试面试题100题
    转 软件测试100题转的地址:软件测试常见面试题合集(内附详细答案)-NING的文章-知乎https://zhuanlan.zhihu.com/p/619120396 写文章  软件测试常见面试题合集(内附详细答案)NING ​关注她 你赞同过软件测试和开发相关内容最近看到......
  • 【面试题】你理解中JS难理解的基本概念是什么?
    作用域与闭包作用域作用域是当前的执行上下文,值和表达式在其中“可见”或可被访问。如果一个变量或表达式不在当前的作用域中,那么它是不可用的。作用域也可以堆叠成层次结构,子作用域可以访问父作用域,反过来则不行。————MDN作用域最重要的特点是:子作用域可以访问父作用域,反之则......
  • 【面试题】详解JavaScript中的Map()
    JavaScript中的Map()JavaScript是一种动态、解释性的编程语言,用于开发web上的动态页面和交互式应用程序。与其他编程语言相比,JavaScript拥有更加灵活的内置数据类型,并且拥有更高级别的调试和错误处理工具。JavaScript的核心特征之一就是其内置的Map()数据结构,本文将详细介绍JavaScr......
  • 【面试题】前端面试复习6---性能优化
    性能优化一、性能指标要在Chrome中查看性能指标,可以按照以下步骤操作:打开Chrome浏览器,并访问你想要测试的网页。使用快捷键F12或右键点击页面并选择“检查”,打开开发者工具。在开发者工具中,切换到“Performance”(性能)选项卡。点击开始录制按钮,即红色的圆点按钮。开始加载页......
  • css面试题
    1.css中的哪些单位 绝对单位:  px:像素单位 相对单位:  em:相对父元素字体大小  rem:相对根元素字体大小2.居中的方式1.水平居中1.设置盒子:margin:0auto2.display: flex2.垂直居中   1.vertical-align:middle 实现居中,1. display:i......