首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

蒙层禁止页面滚动方案

如果在蒙层内部进行滚动,当蒙层内滚动滚动到底部时候再继续滚动的话,蒙层下页面也是能够滚动,这样交互就比较混乱,文中内容测试环境是Chrome 96.0.4664.110。 <!...所以如果在蒙层内部有元素需要滚动的话,需要用Js控制其逻辑,但是逻辑控制起来又是比较复杂,我们可以判断事件event.target元素,如果touch目标是弹窗不可滚动区域即背景蒙层就禁掉默认事件...,反之就不做控制,之后又出现了问题,需要判断滚动到顶部和滚动到底部时候禁止滚动,否则触碰到上下两端,弹窗滚动区域滚动条到了顶部或者底部,依旧穿透到body,使得body跟随弹窗滚动,这样的话逻辑复杂程度就比较高了....clientY); //本次移动时鼠标的位置,用于计算 let scrollTop = scrollerContainer.scrollTop; // 当前滚动距离...,要阻止页面滚动,可以将其固定在视图中即position: fixed,这样它就无法滚动了,当蒙层关闭时再释放,当然还有一些细节要考虑,将页面固定视图后内容会回头最顶端,这里我们需要记录一下用来同步top

6K21
您找到你想要的搜索结果了吗?
是的
没有找到

CSS固定定位与粘性定位4大企业级案例

fixed 固定定位 相对于浏览器窗口进行位置调整 sticky 粘性定位 是基于用户滚动位置来定位。 固定定位 相对于浏览器窗口进行定位,其它与绝对定位特性一致。...常见应用有:楼梯式导航、浏览器右侧菜单、底部通栏、全屏黑色半透明遮罩弹出层、弹出注册和登录框、左上固定右自适应后台管理系统布局 粘性定位 当滚动高度>元素与浏览器高度时,会以fixed固定定位显示...常见应用有:吸顶盒导航,滚动吸附效果 1、楼梯式导航、浏览器右侧菜单、底部通栏(固定定位应用) 这三个案例用都是用固定定位来控制其与浏览器位置。...//获取滚动滚动高度 scrollTop=document.documentElement.scrollTop || document.body.scrollTop;...) 这个效果中黑色半透明遮罩层和弹出视频都是相对于浏览器来固定定位

1.5K30

【实例】调整区域大小&动态隐藏区域

这个接口描述了所有相同种类元素所普遍具有的方法和属性。 这些继承自Element并且增加了一些额外功能接口描述了具体行为....Element属性 说明 实例值 clientHeight、clientWidth (只读)该元素它内部宽度、宽度 300(border-box) clientTop、clientLeft (只读)该元素距离它左边界宽度...、宽度 0 scrollHeight、scrollWidth (只读,整数)包括由于溢出导致视图中不可见内容 300 scrollLeft、scrollTop 读取或设置元素滚动条到元素左边、顶部距离...0内部滚动条) - clientHeight:可以通过 CSS height + CSS padding - 水平滚动条高度 (如果存在)来计算 - scrollHeight:返回整数,如果需要小数使用...该元素左上角相对于 HTMLElement.offsetParent 节点左边界、顶部偏移像素值 180+3=183 - offsetParent: 返回一个指向最近(closest,指包含层级上最近

1.7K21

滚动怎么理解_scrollview不滚动

scrollWidth表示元素总宽度,包括由于溢出而无法展示在网页不可见部分   [注意]IE7-浏览器返回值是不准确   【1】没有滚动条时,scrollHeight与clientHeight...元素未滚动时,scrollTop值为0,如果元素被垂直滚动了,scrollTop值大于0,且表示元素上方不可见内容像素宽度 scrollLeft   scrollLeft属性表示被隐藏在内容区域左侧像素数...元素未滚动时,scrollLeft值为0,如果元素被水平滚动了,scrollLeft值大于0,且表示元素左侧不可见内容像素宽度   当滚动滚动到内容底部时,符合以下等式 scrollHeight...= function(){scrollTo(0,0);} scrollBy(x,y)   scrollBy(x,y)方法滚动当前window中显示文档,x和y指定滚动相对量 <body...如果为true,表示元素顶部与当前区域可见部分顶部对齐(前提是当前区域滚动);如果为false,表示元素底部与当前区域可见部分尾部对齐(前提是当前区域滚动)。

1.9K20

「前端进阶」高性能渲染十万条数据(虚拟列表)

,用于形成滚动条 infinite-list 为列表项 渲染区域 接着,监听 infinite-list-container scroll事件,获取滚动位置 scrollTop 假定 可视区域高度固定...,称之为 screenHeight 假定 列表每项高度固定,称之为 itemSize 假定 列表数据称之为 listData 假定 当前滚动位置称之为 scrollTop 则可推算出: 列表总高度 listHeight...偏移量 startOffset = scrollTop - (scrollTop % itemSize); 最终 简易代码如下: <div ref="list" class=...列表项动态高度 在之前实现中,列表项高度是固定,因为高度固定,所以可以很轻易获取列表项整体高度以及滚动显示数据与对应偏移量。...可以是一个根据列表项索引返回其高度函数:(index: number): number 这种方式虽然有比较好灵活度,但仅适用于可以预先知道或可以通过计算得知列表项高度情况,依然无法解决列表项高度由内容撑开情况

10.1K74

scrollLeft等属性介绍

scrollHeight、scrollWidth:获取对象滚动总高度/宽度 offsetLeft、offsetTop:获取当前对象与父元素之间距离(不包含父元素边框) offsetWidth、...应用地方:在书写一些效果时,如无缝滚动、放大镜、拖拽。我们会使用到元素宽度或者内部元素到父级元素距离等。那么这些值怎么书写呢? 一种最为简单方法即为:直接使用常量。...() { box.scrollTop += 1; // 到达一半位置返回初始状态 if (box.scrollTop == 400) { box.scrollTop = 0; }; } function...将如下代码: if (box.scrollTop == 400) { box.scrollTop = 0; }; 修改为: if (box.scrollTop == con.offsetHeight /...2) { box.scrollTop = 0; }; 关于滚动条 在12种属性当中,存在如下两对:offsetHeight&clientHeight;offsetWidth&clientWidth。

1.1K50

利用虚拟列表改造索引列表(IndexList)

2018提出问题,2019年官方给出了解决方案recycle-view微信小程序长列表卡顿,但是这个只能解决部分问题,对于嵌套数据可能并不能适配。而且内部实现也是按虚拟列表渲染思路去操作。...--暂时固定高度--> <!...= scrollRef.value.scrollTop // todo 高度计算 // 高度偏移需要配合上数据更新才能完成滚动交互 scrollTop.value...= _scrollTop }) }) // 用一个生命周期 后期换成 异步触发 onMounted(() => { let total = 0;...]) 复制代码 渲染数据计算 采用计算属性根据 showListIndexs 变化来进行更新,通过scrollTop计算位置后,拿到一二层下标进行数据截取,不过滚动位置变化导致第二层数据可能无法满足渲染整个可视区域

1.4K00

clientWidth,offsetWidth,scrollWidth你分清吗

对于inline元素这个属性一直是0 offsetTop/offsetLeft/offsetRight/offsetBottom: 代表元素距离父级元素相对距离,但是父级元素需要具有relative...定位,直到找到body,并且即使元素会被滚动,这个值也不会改变 scrollWidth/scrollHeight scrollWidth/scrollHeight 返回值包含 content + padding...+ 溢出内容尺寸,这个只针对dom子元素出现溢出情况时,才有效果,不然它始终和clientHeight相等 scrollTop 代表在有滚动条时,滚动条向下滚动距离也就是元素顶部被遮住部分高度...在没有滚动条时scrollTop==0。...大概是这样 实现思路就是,去拿到选中元素clientHeight和offsetTop,并和列表高度区间做比较,计算出元素是在列表视口内部,还是溢出视口,如果溢出了视口,那么就回滚。

1.9K10

【前端词典】4 种滚动吸顶实现方式比较

粘性定位 sticky 相当于相对定位 relative 和固定定位 fixed 结合;在页面元素滚动过程中,某个元素距离其父元素距离达到 sticky 粘性定位要求时;元素相对定位 relative...效果变成固定定位 fixed 效果。...scrolloTop() 有兼容性问题,在微信浏览器、IE、某些 firefox 版本中 $('html').scrollTop() 值会为 0,于是乎也就有了第三种方案兼容性写法。...我们一定需要使用 scrollTop-offsetTop 值来实现滚动吸顶效果吗?答案是否定。 我们一同看看第四种方案。...(保存变量); 在使用时候可能出现 DOM 没有初始化,就读取了该属性,这个时候会返回 0;对于这个问题我们需要等到 DOM 元素初始化完成后再执行。

2.4K60

了解虚拟列表背后原理,轻松实现虚拟列表

我们先初步看一个图 在这张展示图中,我们可以看到我们展示始终是红色线虚线展示部分,每一个元素固定高度,被一个很大高度元素包裹着,并且最外层有一个固定高度容器,并且设置可以滚动。...> 对应css *{ padding:0px; margin: 0px; } #app { width:300px; border: 1px solid...} = e.target; // 计算当前滚动位置,获取当前开始起始位置 const currentIndex = Math.floor(scrollTop...,根据item固定高度(rowHeight),根据可视区域和rowHeight计算显示limit数目。...当滚动条上滑时,计算出滚动距离scrollTop,通过currentIndex = Math.floor(scrollTop/rowHeight)计算出当前起始索引 根据endIndex = Math.min

3.2K10

基于JS实现回到页面顶部五种写法(从实现到增强)

写法 【1】锚点   使用锚点链接是一种简单返回顶部功能实现。...该实现主要在页面顶部放置一个指定名称锚点链接,然后在页面下方放置一个返回到该锚点链接,用户点击该链接即可返回到该锚点所在顶部位置   [注意]关于锚点详细信息移步至此 <body style="...元素未<em>滚动</em>时,<em>scrollTop</em><em>的</em>值为<em>0</em>,如果元素被垂直<em>滚动</em>了,<em>scrollTop</em><em>的</em>值大于<em>0</em>,且表示元素上方不可见内容<em>的</em>像素宽度   由于<em>scrollTop</em>是可写<em>的</em>,可以利用<em>scrollTop</em>来实现回到顶部<em>的</em>功能...如果为true,表示元素<em>的</em>顶部与当前区域<em>的</em>可见部分<em>的</em>顶部对齐(前提是当前区域<em>可</em><em>滚动</em>);如果为false,表示元素<em>的</em>底部与当前区域<em>的</em>可见部分<em>的</em>尾部对齐(前提是当前区域<em>可</em><em>滚动</em>)。...id="box" class="box"> 2】动画增强   为回到顶部增加动画效果,滚动条以一定速度回滚到顶部

4.9K21

React----组件生命周期知识点整理

-滚动scrollTop和scrollHeight 总结 重要勾子 即将废弃勾子 ---- 案例引入 需求:定义组件实现以下功能: 让指定文本做显示 / 隐藏渐变动画 从完全可见...它使得组件能在发生更改之前从 DOM 中捕获一些信息(例如,滚动位置)。此生命周期方法任何返回值将作为参数传递给 componentDidUpdate()。...getSnapshotBeforeUpdate返回值 //this.refs.list.scrollHeight-height等于30,即一条新闻高度 this.refs.list.scrollTop...body> scrollTop和scrollHeight scrollTop: 代表在有滚动条时,滚动条向下滚动距离也就是元素顶部被遮住部分高度。...在没有滚动条时scrollTop==0恒成立。单位px,可读可设置。

1.5K40
领券