神
  • 首页
  • 特产
    • 肉类
    • 药材
    • 补品
    • 水果
    • 蔬菜
    • 食品
  • 其他
    • 编程
    • 开奖
    • 文章
  • 下载
  • 游戏
  • 全部源码
  • 微信源码
    • 微信功能模块
    • 小程序源码
  • 其他源码
    • 资源共享
    • PPT免费模板
  • 网站源码
    • 金融/商城
    • 行业门户
    • 企业网站
    • 休闲娱乐
    • 工具包
    • thinkphp
    • php源码
    • Java/JavaScript
    • 帝国CMS
  • 网站插件
    • jQuery/Css特效
  • 网站模板
    • Wordpress主题
    • Discuz!模板
    • 其他模板
    • dede织梦模板
  • 视频教程
    • python
    • Mycat分库分表
    • 007系列电影
    • 电视剧
    • 电影系列
    • 演唱会
    • Linux视频
    • 数据库教程
    • 编程视频教程

您现在的位置是:网站首页> 编程资料编程资料

前端页面弹框遮罩禁止页面滚动CSS设计之页面滚动条出现时防止页面跳动的方法使用overflow: hidden来禁用页面滚动条纯css 实现footer 一直在页面底部,不随页面滚动HTML页面滚动时部分内容位置固定不滚动的实现

2023-10-08 351人已围观

简介 这篇文章主要介绍了前端页面弹框遮罩禁止页面滚动,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

这里写图片描述

方案一:控制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事件就传不到页面上,也就不会发生滚动。

这里写图片描述
 

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

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

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

提示: 本文由神整理自网络,如有侵权请联系本站删除!
本站声明:
1、本站所有资源均来源于互联网,不保证100%完整、不提供任何技术支持;
2、本站所发布的文章以及附件仅限用于学习和研究目的;不得将用于商业或者非法用途;否则由此产生的法律后果,本站概不负责!

上一篇:纯html+css实现奥运五环的示例代码HTML+CSS实现导航条下拉菜单的示例代码html+css实现滚动到元素位置显示加载动画效果纯html+css实现打字效果html+css实现环绕倒影加载特效html css3不拉伸图片显示效果HTML+CSS 实现顶部导航栏菜单制作使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)

下一篇:html中使用vue-router的示例代码纯html+css实现Element loading效果纯html+css实现奥运五环的示例代码HTML+CSS实现导航条下拉菜单的示例代码html+css实现滚动到元素位置显示加载动画效果纯html+css实现打字效果html+css实现环绕倒影加载特效html输入两个数实现加减乘除功能html中显示特殊符号(附带特殊字符对应表)关于html选择框创建占位符的问题html css3不拉伸图片显示效果

相关内容

  • 纯html+css实现奥运五环的示例代码HTML+CSS实现导航条下拉菜单的示例代码html+css实现滚动到元素位置显示加载动画效果纯html+css实现打字效果html+css实现环绕倒影加载特效html css3不拉伸图片显示效果HTML+CSS 实现顶部导航栏菜单制作使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
  • HTML+CSS实现导航条下拉菜单的示例代码HTML+CSS 实现顶部导航栏菜单制作Html+Css+Jquery实现左侧滑动拉伸导航菜单栏的示例代码CSS导航条菜单之带小三角形的实现代码css制作黑色经典导航下拉菜单基于CSS3制作立体效果导航菜单纯CSS实现的三级导航菜单效果代码
  • 纯html+css实现打字效果html css3不拉伸图片显示效果利用html+css实现菜单栏缓慢下拉效果的示例代码使用HTML和CSS实现的标签云效果(附demo)html+css+js实现导航栏滚动渐变效果 html+css实现响应式卡片悬停效果CSS3+HTML5+JS 实现一个块的收缩与展开动画效果HTML+CSS+JS模仿win10亮度调节效果的示例代码css+html实现Skeleton Screen 加载占位图动画效果(带动画)
  • NBA 2K14投篮动作解析及怎么提高投篮命中率的经验心得_手机游戏_游戏攻略_
  • 武侠q传 如何获得金宝箱 金宝箱提升开宝成功率的方法_手机游戏_游戏攻略_
  • 百万亚瑟王逆合成表攻略全面解析_手机游戏_游戏攻略_
  • 百万亚瑟王国服主流奶妈卡牌分析表一览_手机游戏_游戏攻略_
  • 看图猜成语 一根毛和一头蒜 答案是什么成语_手机游戏_游戏攻略_
  • 疯狂猜成语 一个日字里面三个秋字 答案是什么成语_手机游戏_游戏攻略_
  • 疯狂猜成语 三颗心两个意字 答案是什么成语_手机游戏_游戏攻略_

点击排行

  • 唯唯绸否猜打一最佳正确生肖[最佳成语最佳释义解释答]
  • TYSB手游公测版下载-TYSB官方唯一正版手游下载 _安卓网
  • 洗牌猫下载-洗牌猫(卡牌对战)Shuffle Cats v0.14.8_安卓网
  • 士绅名流代表什么生肖,成语释义解释落实
  • 士绅名流代表是指什么生肖数字,成语释义解释落实
  • 丛林动物宝宝发型沙龙游戏-丛林动物宝宝发型沙龙(休闲装扮)Baby Jungle Animal Hair Salon v1.0.10_安卓网
  • 士绅名流是指代表什么生肖、释义成语解释落实
  • 超人跑跑游戏下载-超人跑跑(横版动漫酷跑) v1.0.0_安卓网

本栏推荐

  • pandas获取对应的行或者列方式_python_

  • pandas如何获取某个数据的行号_python_

  • python进程池Pool中apply方法与apply_async方法的区别_python_

  • python array中关于[a,b,c]的使用方式_python_

  • Python进程multiprocessing.Process()的使用解读_python_

  • selenium常用API的使用过程记录(包括自动登录)_python_

  • Python使用multiprocessing如何实现多进程_python_

猜你喜欢

  • pandas获取对应的行或者列方式_python_
  • pandas如何获取某个数据的行号_python_
  • python进程池Pool中apply方法与apply_async方法的区别_python_
  • python array中关于[a,b,c]的使用方式_python_
  • Python进程multiprocessing.Process()的使用解读_python_
  • selenium常用API的使用过程记录(包括自动登录)_python_
  • Python使用multiprocessing如何实现多进程_python_
  • 我的微信

关于我们

神代码(http://fvhc.cn )是IT资源下载与IT技能学习平台。js代码网收集整理了最新IT开发视频教程、网站模板、网站源码、js特效(插件)等,充分满足IT用户对不同类型资源的下载需求。代码网拒绝滥竽充数,我们只提供精品资源! 站长QQ:512953070 本站会员:601

© 技术支持:神代码(http://fvhc.cn) blog.sixgod.net blog.haifeisi.net blog.flerken.cn blog.bieha.cn blog.miuti.cn blog.dk028.com blog.scflcp.cn blog.bzbl.cn blog.mlft.cn blog.7zz.net blog.liuyifei.net blog.58t.net blog.yamiao.net blog.caclrc.cn blog.rgbbs.cn blog.heiapp.net blog.zhfjx.cn blog.sshfy.cn blog.sxdgc.cn blog.28city.cn blog.etcb.cn blog.abdayah.cn blog.ddbdzs.cn blog.hyflex.cn blog.11855.cn blog.11566.cn blog.11355.cn blog.62622.cn blog.cbwq.cn blog.zrqm.cn blog.rlfm.cn blog.pbtb.cn blog.knlz.cn blog.rhwf.cn blog.dxfp.cn blog.rptb.cn blog.nzjg.cn blog.ygnl.cn blog.rxbg.cn blog.rfbc.cn blog.rwbs.cn blog.music.liuyifei.net blog.img.liuyifei.net blog.drnu.cn blog.wyim.cn blog.dvtg.cn blog.fvhc.cn blog.lble.cn blog.mvhu.cn blog.uesese.cn blog.ikuns.cc blog.02613.cn blog.lymzi.cn blog.ktoa.cn blog.73216.cn blog.crtwd.cn blog.szmdx.cn blog.kylkc.cn blog.dztmd.cn blog.pmhlw.cn blog.gfxtk.cn blog.tzpc.cn blog.jbqm.cn blog.sh3.cn blog.7sh.cn blog.95596.net blog.95540.net blog.12383.net blog.12363.net blog.boboji.net blog.r515.cn blog.g2050.cn blog.bbc888.com blog.ha123.net.cn blog.dindongji.com blog.dindongji.cn blog.dindongji.net blog.touyin.net blog.ludan.net blog.xshell.net blog.zdbcwf.com

-六神源码网