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

开发 h5| Hybrid | 微信小程序 | 实践踩坑总结十六条

1px否则舍去),从而导致圆角圆;在ios下没有这个问题。...-webkit-overflow-scrolling : touch 卡住不动问题 背景 在ios页面向上向下滑动的过程中,会出现卡顿,不流畅的现象,具体问题如下: 1 在safari上,使用了-webkit-overflow-scrolling...(中招) 2 在safari上,点击其他区域,再在滚动区域滑动滚动无法滚动的(中招)。...3 小程序问题: scroll-view 滑动问题 背景 相信很多同学在开发微信小程序的时候都会遇到scroll-view滑动的情况,造成scroll-view滑动的原因有会多,横向和竖向滑动的原因也不同...7 taro小程序 scroll-view 下滑,突然置顶问题 背景 在用taro-vue搭建小程序的时候,在scroll-view向下滑动的时候,会出现一个诡异情况,就是scroll-view会因为一个兄弟元素的显示隐藏

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

嵌套滑动通用解决方案--NestedScrollingParent2

按分析的view结构直接实现 可见,在tabLayout是吸顶状态,无法继续滑动内层RecyclerView(抬起手指继续滑也不行)。(点击查看相关代码) 那么该咋办呢?...根据滑动冲突的相关知识,我们知道一定是外层RecyclerView拦截了触摸事件,内层RecyclerView无法获取事件,无法滑动了。...作者最后建议使用RecyclerView多布局。 但其实在真实应用中,可能 头部 和 列表 的数据来自不同的接口,当列表的数据请求失败时要展示缺省图,但头部还是会展示。...,大于想要滚动的距离,内层自行处理 }else { //内层已滚动的距离,小于想要滚动的距离,那么内层消费一部分,到顶后,剩的外层滑动...View在滑动之后,判断父view是否继续处理(也就是父消耗一定距离后,子再消耗,最后判断父消耗) * * @param target 具体嵌套滑动的那个子类

3.6K31

这一次,彻底解决滚动穿透

当我们滚动鼠标滚轮,或者滑动手机屏幕时,触发对象可分为两种类型(详见W3C规范): viewport被触发滚动, eventtarget为关联的 Document element元素被触发滚动,通常也就是我们添加... overflow滚动属性的element元素, eventtarget为相应的 node element 注意到这里,只有两种类型,当我们触发滚轮或滑动时,如果当前元素没有设置 overflow这样的属性...,同时也没有 preventDefault掉原生的滚动/滑动事件,那么此时触发的是 viewport的滚动, position:fixed的元素并没有什么例外。...;} 这个想法很美好,在侵入JS的情况下禁止滚动,然而: 只加 overflow:hidden对移动端是无效的!...,但实践后发现: 该方案好像在Android中生效?

2.4K21

导航栏滚动吸顶并自动高亮和点击跳转锚点

点击时则会滑动至其内容所在位置。具体效果为下图样式。 ?...实现方法 正常情况下我们点击自动定位到其所在位置一般用id锚点的方式,但是这种方式有一个缺陷就是无法实现滚动条缓动效果,而且带url上还会通过hash的方式显示出ID,另外也无法实现滚动到内容所在位置自动高亮导航栏...下面我们来看一下导航栏吸顶和滑动到指定位置导航栏高亮的逻辑。...这样我们实现了通过滚动条来控制导航栏高亮的效果了,接下了我们要实现的便是点击导航栏自动定位到其所在内容。...获取所选导航指定内容区域位置信息 let outerItemReact = selectItem.getBoundingClientRect(); //判断导航内容是在可视区域上方还是下方,来决定滚动条是应该向上滚动还是向下滚动

10.4K40

使用 requestAnimationFrame 解决滚动点停误触和 scroll 事件延迟

但是在判断页面是否在滚动的时候出现了一些问题,最常见的 uiwebview scroll 事件延迟,导致我们无法准确判断当前页面(DOM)是否还在滚动。...于是想到了使用 requestAnimationFrame 判断某个元素的位置是否发生变化来标识当前页面(DOM)是否在滚动。...还有一种常见的情况是,滚动已经停止了,点击屏幕发生在其之后,但是感觉像是发生了误触。 常用的解决办法 最先想到的解决办法当然是加锁,当页面在滚动的时候,禁止元素的点击或者 touch 事件。...不能正确获取 scroll 事件无法正确判断当前页面是否正在滚动。看起来我们陷入了僵局。 新的解决方案 我们放弃 scroll 事件,使用别的方式判断页面是否滚动。...最先想到的就是通过获取某个元素的相对位置,如果在两帧之内位置没有发生变化,那不就证明了当前页面已经滚动了吗。

91720

移动端的那些坑

该特性只能通过scrolling="no"属性关闭,并通过设置如下CSS样式设置width:width: 1px; min-width: 100%;;但是设置scrolling="no"会导致安卓下iframe无法滑动...属性时,有一定概率出现transform的元素以外的所有  元素都消失,上下滑动一下页面又出现了。...部分机型touchmove事件连续触发 Android的事件每次都要经过浏览器内核再发往UI线程,为了提高效率,如果浏览器内核中没有设置preventDefault,Android认为该页面元素不需要...css.sm-no-scroll {     height: 100%;     overflow: hidden; } 但由于禁掉了touchmove事件,导致iOS下你希望滚动的部分也无法滚动了,因此对于希望滚动的部分...,通过e.stopPropagation保留原有滚动效果,并针对回弹动画的交互,建议使用如下代码声明一个可滚动区域: /* 以下属性添加到滚动容器上 */ -webkit-overflow-scrolling

1.8K30

学会一行CSS即可提升页面滚动性能

我们经常会碰到类似设置半透明遮罩的需求,通常是绝对定位一个div盖在元素上方,这时遮罩层的鼠标事件优先级会更高,使得打上遮罩的元素无法进行正常交互行为,此时只需给遮罩设置 pointer-events:...不过需要注意的是,虽然该属性也有 none 值,但在这里并不适用,因为"滚动"也属于手势的一种,应该使用 manipulation 这个值,意为只允许进行滚动和持续缩放操作,也就相当于禁用了其他页面手势...监听事件都是先进行了"触摸"才能执行回调,如果需要阻止默认事件,那么就必须在触摸开始前检查是否需要阻止,滑动响应的优先级反而降低了,Google为了保证滑动流畅性默认取消了这一机制。...所以从 chrome56 开始,如果你在全局 touch 事件中声明这是"非被动"操作,那么chrome浏览器会默认执行并报错。...,它相当于先声明了元素的可用触摸事件,这样浏览器就不会报错了,preventDefault() 也不会影响到触摸的事件,这两者可以结合来使用

3.1K30

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

跑起来运行后发现的一个严重的问题是,如果Tab导航控件的内容区域存在ScrollView或者ListView时,无法滚动,只有最外层可以滚动,也就是手势滚动被拦截了?...一个是怎么判断手势滑动以及外层滚动容器到底部和内层滚动到顶部? 第二个是寻找滚动组件并通知内层滚动组件开始滚动?...剩下最后一个如何通知内层容器滚动呢?先卖个关子,在解决这个问题之前,我们先来了解下Android中的View事件是如何传递的。 正所谓知己知彼,百战殆,看看Android触摸事件类型有哪些?...回过头来讲外层滚动容器通知内层滚动,其实通知滚动相当于拦截事件,那么就是重写 onInterceptTouchEvent方法并返回false。而这个方法会随着手势不断调用,这时候聪明的你想到了啥?...isIntercept = false; } return isIntercept; } //向下滑动

4.8K70

开发 | 餐饮小程序必备!教你轻松做出像「饿了么」一样的点餐界面

使用 sitcky 特性,或许是个方案。 今天,知晓程序就来为大家讲解,如何在小程序中使用 sticky 的方法,将页面元素固定在屏幕上。...简单地说,sticky 就是标题栏的「粘粘」效果,向下滑动时跟着列表走、向上滑动到顶部时将会固定在顶部。 ?...但如果滑动右侧的滚动条的话,左侧的数据如何跟着变化呢? 假如不是小程序的话,应该很多人都知道怎么做——无非就是监听滚动条,判断滚动条的位置,然后根据区域去改变左侧的选择。...一个简单的、具有 sticky 效果的商品列表页,以及分类跳转功能,实现了。...「坑」与问题 首先,scroll-view 必须设置高度,否则在 iOS 上,将无法使用 scroll-into-view 跳转。

93440

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

流畅滑动的效果 使用GestureListener实现阻尼滑动效果 未解锁状态禁止向下滑动 详细设计 基于上述几个注意点,考虑细节分别如下: 有效上滑 ?...有效上滑 如上如,锁屏状态下,定义有效滑动阈值standardH,若上滑高度差超过standardH,则判断为有效滑动,布局滑动至屏幕顶部(不可见);否则如向下滑动、向上滑动距离不够等,都作为无效滑动...阻尼滑动效果 从图中可以看到鼠标原来的位置在“更多精彩”图标的顶部,随着向上拖动,鼠标开始偏离图标顶部,就好像一根橡皮筋,拉得越开,需要用更大的力,阻尼滑动给我们这样的感觉。...锁屏状态禁止向下滑动 通过重写onTouchListener方法,记录ACTION_DOWN的位置,然后记录ACTION_MOVE的位置,如果判断它有向下滑动的倾向,则在ACTION_MOVE里,将其复位...问题与改进 问题出现 基于上述的扩展,在RecyclerView的item里的控件添加点击事件后,发现推荐页无法按预期显示隐藏:无论滑动多短的距离甚至是向上滑动,只要是在屏幕下方滑动,推荐页总是会自己显示出来

2.6K20

【兼容性】H5滚动穿透解决方案

小东西快快学快快记,大知识按计划学,不拖延 滚动穿透相信大家平常开发的时候也经常遇到,网上也有很多解决办法 今天我谈下我对 滚动穿透的理解 和 总结下我们大佬写的一个比较完美的解决方案 废话,本文分为...如果 element 可以滚动,那么 滚动 element 如果 element 无法滚动,那么就让 document 响应滚动 是一个 if-else 的关系 这个element 无法滚动包括 没有设置可滚动...; } PC 可以,但是对移动端无效 那么我们限制body超过一屏,那么自然就不能滚动了?...,这样就可以避免页面的跳动,但是直接给 html 设置 absolute 风险太大,容易埋坑,不太建议大项目使用,小应用还是可以的,我在需求的小活动页7就使用过这种方式 5禁用页面滚动 除了在 css...: false} ); 但是这样就会把页面所有滚动都禁止 所以我们需要开放一个白名单,当滚动元素在白名单之内,我们放开限制 这个白名单的设置就是 给元素加上 can-scroll 类名,这样就可以放开滚动

5.5K20

mini react-window(一) 实现固定高度虚拟滚动

,我们这里对 react-window 的使用和实现,进行一下简单的学习分享,了解不同虚拟滚动场景下的使用方式和 react 的优秀封装,希望对你有帮助。...:图片我们可以看到可视区内展示 4 项,但是 dom 结构中展示了 6 项,这是因为列表在上下滑动的时候做了一个缓冲,避免滚动的时候有个白屏的效果,类似缓存。...那这里元素的定位为什么使用定位形式又使用 will-change 呢?...这是使用了 will-change,让浏览器就可以提前知道哪些元素的属性将会改变,把元素提升到一个新层,提升性能,同时避免了重排重绘。...getStartIndexForOffset(this.props, scrollOffset) const endIndex = getEndIndexForOffset(this.props, startIndex) // 向下滚动要取最大值

1.8K50

web移动端:touchmove实现局部滚动

总结一下最近项目用到的一个功能点,具体要求如下: body中会呈现一个可滚动的长页面,在点击某个按钮的时候,会出现一个弹出框,由于弹出框的内容较长,会出现滚动条,但是要保证位于弹框下部的body在弹框滚动的时候触发滚动事件...if(moveY < 0){ } //向下滑动 else if(moveY > 0){ } }); 移动边界的判断 A.向上滑动到上边界...true:false B.向下滑动到下边界 由于滚动区域是包裹在replyContainer里面的,所以滚动区域的初始top值为标题区域的高度,只要标题区域的高度 == 滚动区域的top值...,代表向下滑动到下边界 hasBottom = 3.2*fontHeight >= replyListTop ?...replyListTop : (-Math.abs($(this).height()-canSeeHeight)); } //向下滑动 else if(moveY > 0 && hasBottom){

1.3K20

开发 | 一个 Android 开发者的小程序开发之旅

有了这个想法,我琢磨了两天,大概想做成这样: 接龙可以有「所有人可参与」、「指定群成员参与」等类型。 校验所填的词是不是成语,否则无法使用「印贼做父」了。 字词前后的读音,还是要校验一下的。...获取用户信息 现在大部分的小程序都是一打开,弹出用户信息授权框,有的甚至强制需要授权才可使用。 我之前做的一个也是需要拿到 unionId 去登录才能使用的,为此我还写过一篇文章说明如何实现。...但我的元素 ID 就是数字开头的怎么办? 那就在原来的元素 ID 前面,随便加个字母就好。 ? 切记,item 的 ID 属性前,也要记得加相同的字母。...在 Android 开发里,有一个叫 FloatActionButton 的控件,当列表滚动时,这个控件可以向下移动隐藏。我尝试在小程序里实现类似的效果。...流量费都快给起了,非常感谢大家的捧场。 最后,还是要感谢我家宝宝做了这么好看的设计图。 ? 「碰词 er」小程序使用链接 https://minapp.com/miniapp/3952/

61520

纯CSS解决iOS下网页不满一屏header、footer随页面滚动问题

这个情况下,我们使用如上结构,似乎可以满足,然而,实际使用中发现,如果网页低于一屏高,header、footer还是会被“带走”,这个情况下,有人建议使用js来阻止body的touch事件,这样由于主要滑动的是....content下面的内容,也不至于整页滑动导致header、footer随滚动而动,但这么暴力的处理往往是不理想的(可能影响其他功能,且页面功能多时,可能出现js加载延迟,页面初始化完第一次还是可以滚动...效果大概是这样的:期望是只有主体部分能够滚动,然而向上滑动向下滑动最近遇到这样的问题,尝试后做了如下小改动,可以零js解决此问题,示例代码如下: 测试Footer很简单,既然js实现可能滞后生效(首次生效...PS:这个方法最终没有用到自己的项目上,因为自己项目是一个动态构建webapp的平台,组件都是第三方开发的,可能会有高度100%的需求,且不希望使用CSS3的vh等来实现全屏高,所以希望主体部分下元素可以继承主体高度

55440
领券