首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

滚动穿透的6种解决方案【已自测】

关键代码: JS控制弹窗的交互、body的禁止滚动 ? css添加弹层的超出滚动效果 ? 局限问题: 弹层中内容滚动到顶部或底部后,还会连带页面body一起滚动。也就是还会发生穿透效果。...但是同样的问题是,需要判断滚动到顶部和滚动到底部的时候禁止滚动。否则,就和第二条一样,触碰到上下两端,弹窗可滚动区域的滚动条到了顶部或者底部,依旧穿透到body,使得body跟随弹窗滚动。...4、如果手势是向上,且页面现在滚动的位置刚好是整个可滚动高度——弹窗内容可视区域高度的值,说明上滑到底,阻止默认事件。...2、touchmove手势移动的时候,再次获取最新的坐标点y的值y2,(其实记录可滚动区域的可滚动高度、当前滚动距离等可以在一开始就记录,我这里写到了touchmove里,还可以再优化)。...问题局限: 不好的点就是没有原生滚动条那种效果,一点也不灵动,只能鼠标移动多少、可滚动区域挪动多少

13.4K31

uni-app 安卓APP开发记录

1.使用uni-nav-bar 自定义导航栏 需要先在page.js中把当前页面设置 "navigationStyle": "custom" 然后在页面中使用uni-nav-bar     <uni-nav-bar...tabBar"       title="导航栏组件"       :statusBar="true"     > 需要设置:statusBar="true",不然导航会跟手机顶部的状态栏重叠... var(--status-bar-height);   } 组件是通过uni.getSystemInfoSync().statusBarHeight这个方法来获取当前设备的状态栏的高度...        clientX: "",         clientY: ""       }     };   },   props: {     updDistance: {       // 上下滑动 超过多少距离触发... updownDistance       type: Number,       default: 100     },     lrDistance: {       // 左右滑动 超过多少距离触发

77620

项目需求讨论- 自定义滚轮(第二波新实现)

而且如果你手指快速的滑动,不停的滚动,你就会滑到顶部的位置。因为我们的是ScrollView 最后选中哪一项,才让它滚动到中间相应的那一项。 那有些人可能会说,那我就不只弄这几组。...别人快速滑动也不到顶部了。Too young Too Simple。比如我用11组。但是你会发现,你的界面加载直接很久很久,因为ScrollView内的控件都直接要初始化好,因为你设置了11组。...3.比如只划一部分,如何让它自动滚到相应的Item(重点) 方法还是一样,通过当前获取到的滚到的Y值,然后除以每项的Item的高度,就能知道当前顶部是处于第几项,然后求余数就知道了当前顶部那项有多少是显示的...那现在就是我们要让他滚动到一定距离,自动调整自己的位置,来正好显示某个Item项,而不会出现某个Item在界面上显示一半。...顶部的Item有大于一半ItemHeight的距离滚到了屏幕外面: ?

1.1K20

【Android】手把手教你上解锁的效果

实现思路 这个效果的实现思路主要围绕手指触屏事件展开,注意点如下: 以ACTION_DOWN和ACTION_UP的Y轴距离差与自定义的滑动阈值作比较来判断是否上 借助Scroller类,触发LinearLayout...有效上 如上如,锁屏状态下,定义有效滑动阈值standardH,若上高度差超过standardH,则判断为有效滑动,布局滑动至屏幕顶部(不可见);否则如向下滑动、向上滑动距离不够等,都作为无效滑动...阻尼滑动效果 从图中可以看到鼠标原来的位置在“更多精彩”图标的顶部,随着向上拖动,鼠标开始偏离图标顶部,就好像一根橡皮筋,拉得越开,需要用更大的力,阻尼滑动就给我们这样的感觉。...// 准备滚动到原来位置 } else { // 超过指定距离,则上隐藏 // 准备滚动到屏幕上方 } break; case...) //其实,在此调用invalidate();亦可 postInvalidate(); } super.computeScroll(); } //滚动到目标位置

2.6K20

仿触手直播首页切换效果

源码说是只要滑动位置超过了RecyclerView的width或height时就会触发onSwiped方法,我们这里不需要去动该值就可以了,默认就可以,这里也正好是RecyclerView高度一半的距离...总结下来是两种情况:一种是SlideRecyclerView滑动到顶部,此时如果往上的时候,需要禁掉外层的RecyclerView的滑动,直接调用chuShouCallBack.setDefaultSwipeDirs...因为在SlideRecyclerView滑动监听里面是无法监听到如果滑动到顶部时继续往下滑和滑动到底部时继续往上的操作,因此这里就通过ontouch的坐标该变量来是否打开外层的RecyclerView...这里涉及到了三种情况: (1)SlideRecyclerView滑动到顶部的时候,继续往下滑的时候,需要打开外层的RecyclerView滑动 (2)SlideRecyclerView滑动到底部的时候,...原则是当item滑动到顶部时,若再继续往上禁掉外层RecyclerView滑动,若再继续往下滑打开外层RecyclerView滑动;当item滑动到中间某一个位置时,此时不管再继续往上还是往下滑都是禁掉外层

52920

微信小程序(二)学妹问我微信小程序左删除怎么实现

给基础组件设置高度 movable-area 和 movable-view 是有默认的高度的,必须设置这两个基础组件的高度,如果不设置的话,就算里面的盒子有固定高度,也不会生效的,所以特别一定要注意,设置固定高度...,在写代码前就要算好里面的盒子的高度,如果因为数据不确定,根据不同数据展示不同高度的话,可以用条件判断,设置不同高度。...左另一个项时,其他项的删除按钮全隐藏,只显示一个项的删除。 左距离超过 20px 就自动滑到能显示完整的删除按钮的样子。..., 如果为左右滑动时判断左还是右,左时:左距离超过 20px 就自动滑到能显示完整的删除按钮的样子。...总结 功能实现起来很简单,但是刚开始因为时间不叫紧迫,就做的不叫匆忙,后就有需要优化用户体验的地方,比如左滑移动的距离在 20px 以内松手后应该反弹回原来的位置,超过 20px 松手后应该自动滑动到百分之

5K30

iOS实例——滑动列表展现隐藏顶部视图

在此基础上海加了一个隐藏列表时的动态渐入渐出效果,如下: 实现 实现的要点是,顶部的视图要随着列表的滚动而滚动,且列表最上是可以滚动到屏幕顶部的,最下就是滚动到一个固定的位置就不再往下滚动了,至于渐变效果只要能控制滚动自然也能控制随着滚动去改变...在处理方法中我们要做两件事,第一件事是让顶部视图的高度随着列表移动而移动,但是要控制列表最高移动到的位置TOP和最低移动到的位置BOTTOM,这其实就是顶部视图的低端对应的Y值。...第二件事是让顶部视图随着移动而渐变,当移动到最高时彻底透明,移动到最低时不透明,这个alpha值也是根据移动的值来计算的: - (void)updateSubViewsWithScrollOffset:...= - self.headerScrollView.contentInset.top;// -BOTTOM // 往下拉的时候是否超过BOTTOM,超过的话保持BOTTOM不变,往上的话是否低于...self.alpha = alpha; // NSLog(@"current offset: %f", newOffset.y); } 这里我的工程中顶部视图高度

1.7K10

vue上拉加载更多组件

容器自身的高度加上距离顶部距离就是现在整个页面的高度。整个页面的高度减去可视窗口的高度再减去滚动条移动的距离,当接近0的时候就是到达底部的时候。 明白了这个原理上拉加载就很好实现了。...Props: props: ['up', 'bottomDistance'], up对应的就是父组件传递的到达底部是触发的方法,'bottomDistance'是可以设置到达底部距离多少的时候触发加载更多的方法...this.contentOffSetHeight = document.getElementById('scroll').offsetTop;//容器距离顶部高度window.addEventListener...,防止记住滚动条位置,亲测,要是没有设置history.scrollRestoration,vue生命周期会先移动到顶部然后再移动到记住的位置。...其实设置了这个移动到顶部也不需要,这边为了稳定就加上了。还有就是要移除监听滚动,我试了,跟定时间计时器一样,没有在组件销毁的时候移除,会一直存在。

2K10

详细设计一个文章页目录插件

; 在合适的时候滚动目录列表,使得当前高亮的子目录会出现在滚动区域内部,且尽量处于滚动区域的中间区域; 当点击某个子目录的时候需要高亮当前点击的目录,且文章内容滚动到对应目录的位置,使得点击目录对应的文章标题所在的位置距离可视区域顶部距离刚好等于一个固定值...,当高亮位置移动到在目录滚动区域的上半部分之前,这段不进行目录滚动,如上面的图 ② 到 图 ③ 的变化过程; 当第一个子目录贴着滚动区域的顶部,且高亮位置在中位往下继续滚动的时候,需要进行目录滚动,滚动的距离是当前高亮目录所在位置距离滚动区域中间位置的高度差..., // 防抖的延迟时间 duration: 200, // 滚动的动画持续时间 toTopDistance: 80, // 距离视口顶部多少高度之内时候触发高亮...// 滚动的动画持续时间 toTopDistance: 80, // 距离视口顶部多少高度之内时候触发高亮 selector: '.headerlink', // 文章内容中标题标签的...200, // 滚动的动画持续时间 toTopDistance: 80, // 距离视口顶部多少高度之内时候触发高亮 selector: '.headerlink

2.3K20

仿腾讯课堂固定滚动列表ReactNative组件

说道这里,我尝试着写了个测试js例子,最外面套一个ReactNative自带的ScrollView并设置视频播放控件的高度为200和 Tab导航控件的style={{height: windowHeight...- 80}},那这样滚动距离到120时,滚动条到底部了,视频播发控件的区域距离屏幕顶部还有80。...-- 外层滚动容器到顶部+手势往上则通知内层滚动容器开始滚动;内层到顶部+手势往下则通知外层开始滚动。...一个是怎么判断手势滑动以及外层滚动容器到底部和内层滚动到顶部? 第二个是寻找滚动组件并通知内层滚动组件开始滚动?...不拦截 RNFixScrolView未到底部&&向上:拦截 RNFixScrolView未到底部&&向下滑&&子ScrollView已到顶部:拦截 RNFixScrolView已到底部&&向下滑

4.8K70

JavaScript笔记(21)

接下来就是比较困难的地方了: 下面得到的是遮罩层距预览图左侧和顶部距离 maskX就是遮罩层在盒子中的left值,是怎么得来的呢,我来分析一下: 所以说要减去mask本身宽度和高度的一半...clientWidth很相似,但其实他们有本质的区别: 如果我们放一个盒子,里面装着文字,那么输出的scrollWidth就是200: 但是如果我们将内容增加至很多行,超出盒子的范围: 所以这个的高度是自身实际的高度...我们现在给这个盒子加一个滚动条(div {overflow: auto}),看看scrollTop的用法: 我们现在添加一个事件看看scrollTop打印出来的是什么: 可见scrollTop就是我们盒子顶部和文字内容的上沿之间的距离...,被卷走多少就是多少 画个图帮助理解下: 又到了案例时间: 首先看看结构: 样式: 目前的样子: 我们现在的需求是,我们的页面在一开始是绝对定位的,但是当我们屏幕滚动到...banner以上时,slider侧边栏就开始变成固定定位,当我们再往下滑到main部分时,slider里面的返回顶部会显示出来: JS部分: 获取元素 看看效果是怎样的吧: 不过好的方法总是有兼容性问题的

65310

Android仿微博个人详情页滚动到顶部的实例代码

个人详情页滑动到顶部 最近产品提了个新需求,需要实现点击App内的某个按钮跳转到个人详情页并且滑动到顶部,个人详情页的页面交互稍微复杂,技术角度上包含了状态栏颜色变换,view滑动联动等问题,技术实现上采用了...微博默认的效果以及手动滑动到顶部的效果图如下。 ? ? 个人详情页技术实现分析: 先看看xml布局的伪代码: <?xml version="1.0" encoding="utf-8"?...目前我们要实现的是,在进入当前页面时,强制让AppBarLayout滑动到顶部,使toolbar悬浮固定不动。...,那么这个高度值是如何计算出来的呢。...总结 以上所述是小编给大家介绍的Android仿微博个人详情页滚动到顶部的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。

1.1K20

Android模仿实现微博详情页滑动固定顶部栏的效果实例

简单Demo 传统套路: 写两个一模一样的固定栏,外层用帧布局(FrameLayout)包裹,然后把外层的固定栏先隐藏,当内层的固定栏滑动到外层固定栏位置的时候,把内层固定栏隐藏,外层的固定栏显示,反之回来的时候把外层固定栏隐藏...LinearLayout ll_topView; private TextView tv_topView; private LinearLayout ll_fixedView; //用来记录内层固定布局到屏幕顶部距离...,现在我们只需要拿到固定布局到顶部距离就可以判断什么时候需要移除和添加View了。...3、当我们拿到所需要滑动的高度时,我们需要对固定布局进行临界值做判断(这里设当前滑动值为t,所需滑动值为y) 比如当我们界面一开始向上的时候t值是小于y值的,此时内部固定栏是不需要移除的,而当我们超过...(与固定栏高度保持一致)。

1.2K20

前端实现伸缩框

JS 实现伸缩框 我们的思路是这样子的: 实现右下角的三角拖动图标 计算伸缩框距离左边和顶部距离 监听鼠标的点击、拖动、抬起事件,记录鼠标当前相对视窗左上角点的左侧距离顶部距离 计算鼠标距离边框左侧的距离...,即边框的新宽度 计算鼠标距离边框顶部距离,即边框的新高度 限定边框的最小距离,防止 icon 拖动隐藏 我们需要跟浏览器的事件打交道,这里引入 RxJS ,(当然,读者可以手写原生 javascript...实现的效果可以说和 CSS 实现的 resize: both 的大同小异,优雅且丝~ 如下: 是的,这里我们实现了拉取右下角的图标实现对伸缩框的高度和宽度做了更改。...其实,是否更改宽度或者高度,是否更改图标的位置,或者是否通过拉取边框进行伸缩?...方式实现,引入了 RxJS 优雅实现,可对 UI 高度定制化

17410
领券