蒙层禁止页面滚动的方案 弹窗是一种常见的交互方式,而蒙层是弹窗必不可少的元素,用于隔断页面与弹窗区块,暂时阻断页面的交互。...当弹出蒙层时禁止蒙层下的页面滚动,也可以称为滚动穿透的问题,文中介绍了一些常用的解决方案。...实现 首先需要实现一个蒙层下滚动的效果示例,当我们点击弹窗按钮显示蒙层之后,再滚动鼠标的话能够看到蒙层下的页面依旧是能够滚动的。...charset="utf-8"> 蒙层禁止页面滚动的方案...所以如果在蒙层内部有元素需要滚动的话,需要用Js控制其逻辑,但是逻辑控制起来又是比较复杂的,我们可以判断事件的event.target元素,如果touch的目标是弹窗不可滚动区域即背景蒙层就禁掉默认事件
问题在于:弹出层内部需要滚动就不行 张鑫旭大神的招数。
,只显示了遮罩层,而内容层则定位无法正确显示,下面所列是一些有关弹出层的功能,正确显示如下图: 但某些时候,会只显示遮罩层,无法显示弹出层,如下图: 原因分析 在浏览器显示内容中右击审查元素(360极速...position 定位缺失了 top 值,这应该是弹出层问题之所在。...如下图,我们发现遮罩层的 z-index 值为 811212,弹出层的 z-index 值为 811213: 因此打开 kindeditor.js 核心文件进行查找修改,该文件存在于插件应用的根目录:...关于弹出层显示如果不修改代码,还可以使用一种消极方法进行操作,即点击其全屏功能,如下图: 全屏后兼容性比较好,未出现弹出层定位不准的问题,但如果在整体操作界面上来说,来回的切换全屏模式比较繁琐。...到此关于修改解决 KindEditor 弹出层问题就介绍到这里,感谢您的阅读,希望本文能够对您有所帮助。
背景: 弹层里边有可滚动区域时,在移动端的坑我就不多说了。 找了很多解决滚动穿透的方案,最终都不能完美解决。 一气之下自己js撸了一个。 效果图: ?...原理: 1、解决滚动穿透:通过给弹层绑定touchmove和mousewheel事件,取消默认行为实现。...2、取消默认行为后不能滚动:给需要滚动展示的区域绑定touchstart、touchmove和mousewheel事件,监听触发区域的Y值,对应修改可滚动区域的translateY值,实现滚动效果。...touchToBottom(params.scroll, params.bar); 117 } 118 }); 119 } 120 完整demo见github: 移动端超出滚动效果
不显示滚动条(css) ::-webkit-scrollbar { width: 0px; } 禁止页面滚动条(js) document.body.parentNode.style.overflowY...= "hidden"; $("body").parent().css("overflow-y","hidden"); 启用浏览器滚动条(js) document.body.parentNode.style.overflowY
JS 实现浏览器的 title 闪烁、滚动、声音提示、chrome、Firefox、Safari等系统弹出通知。..., // 点击弹窗打开连接地址 onclick: () => { // 点击弹出的窗之行事件 console.log('---') }, // 可选播放声音 audio:{...设置图标 icon 默认为 Favicon body:'您来了一条新消息', // 设置消息内容 } }); notify.player(); 在您的HTML中手动下载并引入 notify.js...,你也可以通过 UNPKG 进行下载: js"> <script...setFaviconBackgroundColor('red'); faviconClear 清除数字显示原来的icon iNotify.faviconClear() chrome通知 notify 弹出
###运用cookie 使弹出层只显示一次 运用cookie的原理,一个页面只提示一次的DIV提示层。特别适合于页面的功能小提示等。可以做出类似QQ空间的功能提示。 <!
在移动端中,如果我们使用了一个固定定位的遮罩层,且其下方的dom结构的宽度|高度超出屏幕的宽度|高度,那么即使遮罩层弹出后铺满了整个屏幕,其下方的dom结构依然可以滚动,这就是大家所说的“滚动穿透”。...关键代码: JS控制弹窗的交互、body的禁止滚动 ? css添加弹层的超出滚动效果 ? 局限问题: 弹层中内容滚动到顶部或底部后,还会连带页面body一起滚动。也就是还会发生穿透效果。...就能阻止滚动穿透。 关键代码: js控制弹窗的交互、弹窗的禁止滚动 ?...也就是禁止整个弹窗的touchmove的默认事件,以阻止滚动穿透。 同样,如果弹层中需要滚动效果,则不能解决了。...那么这时,就引来我们的主题难点,可以有以下几种思路解决: 四、body滚动 + 弹层内部滚动[js-检测touchmove的target] 简单粗暴,一针见血:谁能动谁动,谁不能动就禁止touchmove
什么是滚动穿透 如图所示,有一层遮罩蒙层覆盖在body上时,当我们滚动遮罩层,它下面的内容也会跟着一起滚动,看起来好像是上面的滚动事件穿透到下面的DOM元素上一样,我们称之为滚动穿透。...;} 这个想法很美好,在不侵入JS的情况下禁止滚动,然而: 只加 overflow:hidden对移动端是无效的!...(请注意蒙层出现时,底部列表发生的变化) 在这个交互过程中,浮层弹出时,底部列表首先滚动条被置为初始态,关闭浮层后重置为之前的记录位置。...实际上浮层的弹出背景是有一次跳变。 这种方案实现简单,若认为重置滚动条的跳变无伤大雅的情况下可以优先采用此方案。 阻止body的默认滚动?...假如我们的浮层上真的需要滚动事件,就不能阻止这些元素的默认行为。 浮层上面的滚动元素?
.container { overscroll-behavior: contain; } ⭐️⭐️禁止屏幕抖动 通过提前声明滚动容器的padding-right为滚动条宽度,可以防止滚动条的出现导致屏幕抖动...此外,点击穿透问题也常见,如点击蒙层,蒙层消失后可能会触发蒙层下层元素的点击事件。 解决方案 禁止缩放:通过设置 meta 标签的 user-scalable=no来禁止用户缩放。...兼容原理,1.判断版本类型 2.更改滚动的可视区域 解决方案 通过监听页面高度变化,强制恢复成弹出前的高度。...= document.querySelector('.content'); // 记录滚动位置 let scrollTop = 0; // 禁止滚动穿透 function disableScroll...// 恢复滚动位置 window.scrollTo(0, scrollTop); } // 示例使用,当某个事件触发时禁止滚动穿透 function disableScrollEvent() {
layui弹出层的使用方法:首先引入jQuery1.8以上的任意版本;然后引入laery.js;最后通过“function show(){var a = layer.open({…});}”方式使用laery.open...弹出层即可。...laery.js 地址–http://layer.layui.com/ 2、引入laery.js 在此之前你必须要先引入jQuery1.8以上的任意版本 3、使用laery.open();function...iframe出现滚动条,你还可以content: [‘http://sentsin.com’, ‘no’] }); 示例: 3.3.如果是用layer.open执行tips层layer.open({...){ //右上角关闭回调 //return false 开启该代码可禁止点击该按钮关闭 } }); 6, shade 遮罩 即弹层外区域。
-webkit-tap-highlight-color:transparent; 取消ios里Button、Input上的默认样式 -webkit-appearance:none; 禁用长按页面时的弹出菜单...通常当你在手机上长按图像 img ,会弹出选项 存储图像 或者 拷贝图像,若不想让用户这么操作,可以设置方法来禁止: img, a {-webkit-touch-callout: none;} H5页面...,文本的大小会重新计算,进行相应的缩放,当我们不需要这种情况时,可以选择禁止: html { -webkit-text-size-adjust: 100%; } 禁止选中内容 如果你不想用户可以选中页面中的内容...遮罩层滚动问题 在有遮罩层的情况下,遮罩层下方的内容依然可以透过遮罩层滚动,因此要取消这种操作 (function(){ var scrollTop = 0; // 显示弹出层...$('.open').click(()=>{ // 在弹出层显示之前,记录当前的滚动位置 scrollTop = getScrollTop(); $('.workflow-modal
两种调用方法: 1、引用独立的layer.js文件 引入好layer.js后,直接用即可 js"> layer.msg('hello...dom元素不会在原位置显示,会移动到弹出层中;退出弹出层后会在原位置显示,最好将DOM容器设置为display:none。...//layero 为 弹出层对象 //在回调函数末尾添加 “return false”可以禁止点击该按钮关闭弹出层 return...(layero); } 20、scrollbar-是否允许浏览器出现滚动条 类型:Boolean,默认:true,默认允许浏览器滚动 如果设定scrollbar: false,则屏蔽,即使浏览器存在滚动条...layer.close(layer.index); //关闭最新弹出的层,layer.index获取的始终是最新弹出的某个层,值是由layer内部动态递增计算的 //当你在iframe页面关闭自身时
jQuery遮罩很容易实现,遮罩弹出后最好是要禁止页面滚动。 下面就写一个简单的遮罩,和禁止页面滚动的实例。...HTML: 显示遮罩层 隐藏遮罩层 CSS: .mask { position: absolute; ...function hideMask(){ $("#mask").hide(); } 禁止滚动: #禁止浏览器滚动条滚动: $('body').css({ "overflow":"hidden...){ $('html,body').removeClass('ovfHiden'); //使网页恢复可滚 }) 声明:本文由w3h5原创,转载请注明出处:《jQuery遮罩(Mask)及弹窗时禁止页面滚动实现
应用场景:页面操作中,一旦出现弹窗,不进行处理,后续的操作无法进行 弹窗分类:1、系统弹窗(js实现) 2、自定义弹窗(前端代码封装) 网页中常用的弹出框有三种: 1...页面注册同意条款,需要滚动条到最底层,才能点击同意 先提需求:打开注册页面A,暂停2秒后,滚动条拉到最底层 说明:selenium中并没有直接提供操作滚动条的方法,但是它提供了可执行JavaScript...设置JavaScript脚本控制滚动条 js = "window.scrollTo(0,1000)" (0:左边距;1000:只是一个尽可能大的值,不是准确值) 2. selenium...调用执行JavaScript脚本的方法 driver.execute_script(js) 我们来做一下上边需求: # 最底层 js1 = "window.scrollTo(0,10000)"...driver.execute_script(js1) # 最顶层 js2 = "window.scrollTo(0,0)" driver.execute_script(js2)
** 最新内容请查看这里** 工具库 javascript底层工具库underscore.js 时间操作库moment 发布订阅 Arbiter.js ---- 以下均依赖jquery 幻灯...wowslider 幻灯切换时各种很炫的效果 cycle2 普通的幻灯 浏览图片 fancybox 弹出查看图片,视屏等等 demo yoxview 弹出查看图片,图片尺寸缩放很自然...但貌似只能在弹出层中显示,而没有下拉这种方式显示。 zebra-datepicker 可配置性很强。但貌似只能在弹出在右上方。。。...scriptcam 抓取,解析RSS内容(不能跨域,所以后台要做代理,所谓的解析Rss其实就是解析xml) jFeed jRss 简单版的jFeed 其他 nouislider 用滚动条来设置
在main.js中设置全局函数: //弹出框禁止滑动 Vue.prototype.noScroll = function () { var mo = function (e) { e.preventDefault...() } document.body.style.overflow = 'hidden' document.addEventListener('touchmove', mo, false)// 禁止页面滑动...} //弹出框可以滑动 Vue.prototype.canScroll = function () { var mo = function (e) { e.preventDefault()...} document.body.style.overflow = ''// 出现滚动条 document.removeEventListener('touchmove', mo, false) }...在页面使用时: //禁止主页面滑动 this.noScroll() //主页面可滑动 this.canScroll()
,不过是移动设备对页面 做了缩小优化,所以字体等都相应缩小了 (980px是相对于手机像素的,我的是超过1000px多一些就出现滚动条了,这个没具体研究)。...减去键盘的 高度,需要手动去触发让视窗高度回到正常,然后试了很多方法都没成功,后来的方案是输入框消失时给页面加隐形的很大的 padding比如 1000px并在 30ms后改为正常 13.禁止用户选中文字...和 zepto.js里的 tap事件。...假如你 tap一个弹出层元素(这个元素遮罩了一个 a标签),这个元素立即消失,这样由于上述的 0.3s延迟 tap事件就会传递给 a标签成 click事件造成a标签跳转。...(这个没用过) ③ 有的时候比如弹出一个 iphone上滑动出来的层,点击黑色半透明区域弹出层消失,这种可以在黑色区域绑定 touchend也是和 tap差不多的效果 7.当弹窗出现时,想禁止屏幕的滑动
-webkit-user-select: none;user-select: none; ---- 9、H5页面想禁止长按链接或长按图片后弹出菜单,怎么办?...//滚动条轨道 ::-webkit-scrollbar-button //滚动条轨道两端按钮 ::-webkit-scrollbar-track-piece //滚动条中间部分,内置轨道 ::...// 禁止长按链接与图片弹出菜单 a,img { -webkit-touch-callout: none } // 禁止ios和android用户选中文字 html,body {-webkit-user-select...window.addEventListener("DOMContentLoaded",loaded,false); //position定位 //Android下弹出软键盘弹出时...iframe(阻塞父文档onload事件) //2.禁止使用gif图片实现loading效果(降低CPU消耗,提升渲染性能) //使用CSS3代码代替JS动画; //开启GPU加速; //使用base64
事件委托的作用 我们只操作了一次DOM,提高了程序的性能 那我们可以这么做,给ul加上点击事件: 但是我们可以看到点击li的时候也会弹出警示框,这是为什么呢?...JS中当触发某些具有冒泡性质的事件时,首先在触发元素寻找是否有相应的注册事件,如果没有再继续向上级父元素寻找是否有相应的注册事件作出响应,这就是事件冒泡。...常用的鼠标事件 1.禁止鼠标右键菜单 contextmenu主要控制应该何时显示上下文菜单,主要用于程序员取消默认的上下文菜单.比如取消显示框选文本后点击右键的复制 这样就不能右键复制了,....现阶段我们主要是用鼠标事件对象MouseEvent和键盘事件对象KeyboardEvent clientX / clientY 我们获取一下在可视区中的点击坐标:(如果页面滚动也不会影响) 但是如果整个页面有有滚动条...常用的键盘事件 keyup和keydown是不区分大小写的,keypress区分大小写 如果同时写了onkeydown和press,会先执行onkeydown再执行press,因为press多了一层判断
领取专属 10元无门槛券
手把手带您无忧上云