潘少俊衡
  • 首页
  • IT资讯
  • 爱搞机
  • 墨香
  • 笔电
  • 手机
  • 剁手
  • 系统
    • 网页制作

      1000元配置

      2000元配置

      3000元配置

      4000元配置

      5000元配置

      6000元配置

      7000元配置

      8000元配置

      9000元配置

      万元配置

      i3配置

       i5配置

      i7配置

      APU配置

      R5配置

      R7配置

      游戏攻略

      软件教程

      Win10教程

      Win7教程

      Mac教程

      Linux教程

      U盘教程

      Server教程

      首页 > 网页制作 > HTML/Xhtml

      前端页面弹框遮罩禁止页面滚动 游戏攻略

      admin HTML/Xhtml 2022-02-04 21:48:01 弹框遮罩   禁止页面滚动   移动端"

      前端开发经常会遇到的一个问题就是制作一个弹框来向用户提示信息,在这个弹框弹出的同时,往往会伴有一个灰色的遮罩层挡住页面内容,同时整个页面被这层遮罩盖住,不可点击也不可滚动。

      这里写图片描述

      方案一:控制overflow禁止滚动(ios不兼容)

      要制作这个效果在PC端非常简单,只需要设置html的高度为100%占满屏幕,并且将html的overflow设置为hidden,即可保证页面不可滚动。
      但是同样的问题在移动端情况就有所区别。仅仅设置html的上列属性,在移动端仍然无法禁止页面超出部分的滚动,我们需要设置下面的代码才能在弹框出现的时候禁止页面滚动:

      html.style.overflow="hidden";
      html.style.height="100%";
      body.style.overflow="hidden";
      body.style.height="100%";

      原因是因为移动端是基于touch事件,要禁止基于touch事件的滚动,我们必须在对html禁止滚动的基础之上,再将需要禁止滚动的内容上再增加一个包裹层块级元素,然后将这个包裹层块级元素高度设置为100%并设置overflow:hidden;,那么在这里我们认为body包裹了整个页面,正是我们需要的块级元素,将他也设置为禁止滚动,就可以保证移动端页面的滑动时间不会触发页面滚动。
      当用户关闭了弹框,页面也就恢复正常,我们设置如下CSS样式属性来还原整个页面的滚动效果:

      html.style.overflow="visible";
      html.style.height="auto";
      body.style.overflow="visible";
      body.style.height="auto";

      这些样式正是对应CSS属性的默认样式。
      然而这个方案有一个缺陷,就是ios系统下不兼容,黑幕的效果没法阻止页面的滚动。下面介绍移动端的另一种解决方案。

      方案二:绝对/固定布局阻止手势滚动事件冒泡(PC端无效)

      正是因为移动端的滚动基于屏幕的touch事件,因此诞生了方案二(手机淘宝就使用了这种方案)。
      首先我们需要知道两个前提知识点:1、重叠的两个页面元素,z-index值更高的会优先触发事件监听,从而可以在此控制是否让事件流继续;2、移动端滚动的touch事件,基于事件流。
      有了上面两个知识点的基础,我们就可以来理解这种方案的设计思路。方案二的原理是:不对原页面进行任何改动,仅仅只是用一个拥有更高z-index值的,布局为absolute或者fixed布局的黑幕(长宽100%)来挡住整个页面,并且监听黑幕的touchstart事件,在touchstart事件内结束事件流,从而阻挡事件流继续。这样,能够产生滚动效果的touch事件就传不到页面上,也就不会发生滚动。

      这里写图片描述
       

      下面贴上方案二的完整测试源代码:

      
      
      	
      		
      		
      		
      	
      	
      		
      当前黑幕弹出后,页面应该不可滑动,点击当前文本,关闭黑幕

      到此这篇关于前端页面弹框遮罩禁止页面滚动的文章就介绍到这了,更多相关弹框遮罩禁止页面滚动内容请搜索潘少俊衡以前的文章或继续浏览下面的相关文章,希望大家以后多多支持潘少俊衡!

      版权声明

      本文仅代表作者观点,不代表本站立场。
      本文系作者授权发表,未经许可,不得转载。
      本文地址:/web/HTML/70246.html

      上一篇 : html+css实现充电水滴融合特效代码 游戏攻略
      下一篇 : HTML基础详解(上) 游戏攻略

      相关文章

      留言与评论(共有 0 条评论)
         
      验证码:

      热门文章

      • 1HTML5 简介
      • 2HTML 相对路径和绝对路径区别分析
      • 3HTML中利用div+CSS实现简单的箭头图标的代码 游戏攻略
      • 4纯html+css实现奥运五环的示例代码 游戏攻略
      • 5HTML网页各种字体格式的细节修饰
      • 6XHTML标签都有一个结束标记
      • 7谈谈html转义字符如何通过代码识别
      • 8基础 HTML之目录问题(相对路径和绝对路径区别)
      • 9HTML 几种特别分割线特效
      • 10table合并单元格与img图片铺满整个td的html

      最近发表

      • 16T硬盘1799元东芝 1999元西数 京东自营
      • 949元 宏碁(Acer)27英寸2K 180Hz高刷1ms(GtG)FastIPS支持HDR新电竞小金刚(VG271U M3bmiipx)
      • 日本雷蛇官网实习生上错价了?游戏本只卖15950日元?
      • 《原神》物归原主又归原主世界任务指南 游戏攻略
      • 《原神》振晶的研究第三天试用角色2000分攻略 游戏攻略
      • 《原神》2.6版全旋曜玉帛点位说明_蒙德 游戏攻略
      • 《原神》2.6版深渊11-1守护镇石技巧 游戏攻略
      • 《原神》神里绫华装备搭配推荐 游戏攻略
      • 《原神》云堇突破材料获取方法 游戏攻略
      • 《原神》世界任务他乡迷失客攻略 游戏攻略

      标签列表

      • 开放世界
      • 沙盒
      • win10
      • 3D设计
      • PS
      • 鬼谷八荒
      • win7
      • 手游
      • 团队竞技
      • 原神
      • 二次元游戏
      • 策略
      • 电脑常识
      • 王者荣耀
      • 照片处理
      • MySQL
      • 吃鸡
      • 笔记本
      • win8
      • 绝地求生大逃杀
      返回顶部
      • QR Code

          打开手机扫描上面的二维码

      潘少俊衡

      | 桂ICP备2023010378号-4

      Powered By EmpireCMS

      谷姐神农

      桂ICP备2023010378号-4

      桂公网备 45012202000125号

      联系我们

      商业合作

      广告投放

      投稿须知

      使用手机软件扫描微信二维码

      关注我们可获取更多热点资讯

      感谢潘少俊衡友情技术支持