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

控制页面的滚动:自定义下拉到刷新和溢出效果

使用该案例包括禁用移动设备上的“拉动到刷新”功能,消除过度滚动发光和橡皮筋效果,并防止页面内容在模态/叠加层下滚动 背景 滚动边界和滚动链接 滚动是与页面交互的最基本的方式之一,但是由于浏览器的诡异默认行为...(左边为原生拉到刷新操作,自定义拉到刷新,右边为原生拉到刷新操作刷新整个页面) 对于像Twitter PWA这样的情况,禁用本地“拉动到刷新”操作可能是有意义的。为什么?...你可以使用它来取消滚动链接,禁用/自定义拉动到刷新操作,禁用iOS上的橡皮圈效果(当Safari实现超滚动行为时)等等。...滚动不会传播给祖先,但会显示节点内的本地效果。例如,Android上的滚动滚动效果或iOS上的橡皮筋效果,它会在用户点击滚动边界时通知用户。...为了防止导航,你可以使用overscroll-behavior-x:none 完整Demo 把它放在一起,完整的聊天框演示,使用overscroll-behavior行为来创建一个自定义的拉动到刷新动画,并禁用滚动从转义聊天室小部件

3.8K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    7.9K star!跨平台开发从未如此简单,这个开源框架让APP开发效率飙升!

    嗨,大家好,我是小华同学,关注我们获得“最新、最全、最优质”开源项目和高效工作学习方法 Lynx 是一个革命性的跨平台开发框架,使用 TypeScript 开发即可同时构建 iOS、Android 和... ) }} 高性能布局引擎集成 Facebook Yoga 布局引擎的增强版,支持:弹性盒布局(Flexbox)绝对/相对定位百分比尺寸动态内容自适应 原生滚动体验独创的滚动容器组件实现丝滑流畅的滚动效果...,支持:惯性滚动弹性边界滚动事件监听嵌套滚动协调技术架构解析模块技术方案性能优势跨平台架构C++ 核心 + 平台桥接层代码复用率 90%+布局计算改造 Yoga 引擎布局计算速度提升 2.3 倍渲染系统原生组件直渲首屏渲染时间...支持每秒 10 次数据更新复杂图表渲染性能提升 3 倍内存占用降低 40%同类项目对比特性LynxReact NativeFlutter开发语言TypeScriptJavaScriptDart渲染方式原生组件原生组件...,支持转译到微信/支付宝等小程序平台KMM - JetBrains 推出的 Kotlin 跨平台方案,专注 Android/iOS 业务逻辑共享FinClip - 小程序容器技术,支持在任意 App 中运行小程序项目地址

    50810

    中高级前端必须注意的40条移动端H5坑位指南 | 网易三年实践

    Android和iOS各显神通,Android的系统版本和屏幕分辨率多得难以一招兼容,iOS的顽固标准和未知特性多得难以快速掌握。...唤醒原生应用的前提是必须在移动设备里安装了该应用,有些移动端浏览器即使安装了该应用也无法唤醒原生应用,因为它认为URL Scheme是一种潜在的危险行为而禁用它,像Safari和微信浏览器。...通过声明overflow-scrolling:touch调用系统原生滚动事件优化弹性滚动,增加页面滚动的流畅度。...首先明确解决滑动穿透需保持哪些交互行为,那就是除了弹窗内容能点击或滚动,其他内容都不能点击或滚动。目前很多解决方案都无法做到这一点,全部解决方案都能禁止的滚动行为却引发其他问题。...页面高度过小 输入框在页面底部或视窗中下方 输入框聚焦输入文本 只要保持前后滚动条偏移量一致就不会出现上述问题。

    4.5K22

    移动端页面在IOS里滑动不顺畅解决办法

    开发移动端的同学可能都知道,当在你用overflow-y:scorll属性的时候,内容超出容器溢出滚动的效果很迟顿,特别是在IOS系统里,通常情况下,我们为了追求好的用户体验,会使用屏幕滚动插件better-scroll...这时候可以使用-webkit-overflow-scrolling:touch这个属性,让滚动条产生滚动回弹的效果,就像ios原生的滚动条一样流畅 ? ?...简单说明一下: -webkit-overflow-scrolling :控制元素在移动设备上是否使用滚动回弹效果。 auto:使用普通滚动, 当手指从触摸屏上移开,滚动会立即停止。...touch:使用具有回弹效果的滚动, 当手指从触摸屏上移开,内容会继续保持一段时间的滚动效果,继续滚动的速度和持续的时间和滚动手势的强烈程度成正比。...在safari上,点击其他区域,再在滚动区域滑动,滚动条无法滚动。  在safari上,使用了-webkit-overflow-scrolling:touch之后,页面偶尔会卡住不动。

    2.3K10

    【总结】1823- 移动端滚动穿透与滚动溢出解决方案

    问题原因 能够猜想是文档(document)的滚动事件被触发了,如果能禁用滚动事件就好办了。...none 禁用浏览器处理所有平移和缩放手势。 manipulation 启用平移和缩放手势,但禁用其他非标准手势,例如双击缩放。 pinch-zoom 启用页面的多指平移和缩放。...于是在 popup 元素上设置该属性,禁用元素(及其不可滚动的后代)上的所有手势就可以解决该问题了。...Step 1、监听弹窗最外层元素(popup)的 touchmove 事件并阻止默认行为来禁用所有滚动(包括弹窗内部的滚动元素)。...例如 Android 上过度滚动的发光效果或 iOS 上的橡皮筋效果。 none 与 contain 相同,但是会阻止自身的过度效果。

    81411

    Native和H5分久必合,Weex会带来移动端的巨变吗?

    Weex平台团队2015年年底开始接手Weex整体开发工作。在2016年双11会场中,Weex覆盖了99.6%(1747/1754)的会场页面,页面的打开速度、滚动的流畅性都保证了较好的用户体验。...Native开发的诸多亮点中,流畅体验和系统调用是最多被提及的,然而,实际上是痛并快乐着。 • 流畅体验体现在页面滚动/动画的流畅性,背后是更好的内存管理和更接近原生的性能。...• H5 WebView滚动过程中懒加载图片会导致“白屏”。 Weex利用H5的优势解决了Native的痛点: • 解决了iOS、Android等平台需要开发多套功能重复代码的问题。...(5) 渲染引擎:从架构设计上,Android/iOS/H5渲染引擎是相互独立、地位平等的渲染端,这是保持三端一致的基础,当然在协议实现层面需要更多的设计、质量保证。...(5) Weex从架构上支持了iOS、Android、H5渲染引擎,做到了真正意义上的三端一致。 阿里双11会场的移动技术演进 始于2009年的阿里双11见证并参与了移动技术变迁的全过程。

    2K00

    12 个实用的前端开发技巧总结

    实现自定义原生 select 控件的样式 由于 select 移动端原生样式很丑,但是原生弹出效果是符合我们设计的原则。...直接修改 select 的样式的时候,一个奇怪的现象出现了,在 chrome 上调试的时候,自己定义的样式起了作用,在 Android 手机上也起了作用,但是到了 ios 手机上就不行了,典型的不兼容问题...,这个时候禁用原生的样式即可。...开启弹性滚动 css 代码如下: body { overflow: scroll; -webkit-overflow-scrolling: touch; } 注意:Android 不支持原生的弹性滚动...一像素边框设置 很多时候,想保持边框的大小在任何设置上都是 1px,但是因为 1px 使用 2dp 渲染,也就是说会显示为 2px 大小。所以,要采用 css3 缩放一下。

    1.2K20

    移动端滚动研究

    发现触发的时机区分android和ios两种情况,具体可以看下面表格: | 机型(内核) | body滚动 | 局部滚动 | | :-: | :-: | :-: | | ios | 不能实时触发 |...tranlateY值,将两者同时位移来将下拉刷新元素显示出来,手指离开时(touchend)收回,这种方案满足了在正常列表滚动时使用原生的滚动节省性能,只在下拉刷新时使用模拟滚动来实现效果。...(当执行复杂操作时,当它发现无法维持 60fps 的频率时,它会把频率降低到 30fps 来保持帧数的稳定。)...pointer-events: none 可用来提高滚动时的帧频。的确,当滚动时,鼠标悬停在某些元素上,则触发其上的 hover 效果,然而这些影响通常不被用户注意,并多半导致滚动出现问题。...对 body 元素应用 pointer-events: none ,禁用了包括 hover 在内的鼠标事件,从而提高滚动性能。

    3.4K20

    滑屏 H5 开发实践九问 - 腾讯ISUX

    如何节省工作量提高效率?面对性能优秀的 iOS 与性能良莠不齐的 Android 平台,又如何做到体验统一与性能最优? 第一问:拖拽翻屏,还是滑动翻屏? ? ? 页面随手势拖拽后翻屏 ? ?...简单的滑动可能两者并无太大差异,但假如把多样的需求和场景考虑到,可以发现在滑屏上也会细化出很多功能点: 循环滑动 滑动禁用与开启 预加载 / 延时加载 初始化时显示某一页 滚动到某一页、跳过某一页 提供滑动前...,而 iOS 和 Android 的大部分浏览器中,页面滚动时是会阻止页面重绘的(JS 的执行也无法立刻生效在页面中),所以Demo 里看到的效果就是回弹后才翻屏。...不过在 iPhone4/4s 这种小屏幕下,也可以尝试取消分屏滑动,直接用浏览器原生的滚动。...跟 Android 专门写一套代码,看似工作量大,其实可以规避掉很多不必要的麻烦。

    4.3K40

    Flutter 3.3更新详解

    将页面滚动到底部的 DartPad,并跟随以下步骤进行操作: 缩小窗口让上半部分出现滚动条 将指针悬停在上半部分 使用触控板进行滚动 在 Flutter 3.3 以前,使用触控板滚动会拖动元素,因为 Flutter...首先,打开图片时数据会被拷贝至原生的堆内存并向 Dart 暴露出结构数组。然后,数据会在结构数组转换至内置存储的 ui.ImmutableBuffer 时被再次拷贝。...框架稳定性 禁用 iOS 内存指针压缩 在 Flutter 2.10 稳定版的发布中,我们为 iOS 启用了 Dart 的内存指针压缩优化。...Dart 通过为堆保持一个大的虚拟内存来实现指针压缩。由于 iOS 上允许的总虚拟内存少于其他平台,因此其他例如 Flutter 插件之类的组件可持有的虚拟内存便减少了。...虽然禁用了指针压缩会增加 Dart 对象消费的内存,但是它也恢复了 Flutter 应用可用的非 Dart 部分的内存,总体来说是更合适的方案。

    3.1K20

    小程序提升界面使用体验 丰富了内容展示组件

    以下是相关能力的展示 01—提升界面使用体验 小程序可以灵活调整顶部标题栏的颜色,同自己的页面保持色彩统一。 小程序可以获取页面布局,了解用户屏幕滑动情况,并使用页面滚动接口。...例如看到一半的文章,开发者可以定位并记住浏览的位置。在用户下次打开小程序时,立即滚动到未读处,方便用户继续阅读。 地图、视频和画布上,现在可以展示简单的图片及文字,帮助用户更好地使用这些功能。...更新概述: 新增 7 个全新 API 包括获取页面布局,页面滚动,监听截图事件等 新增 可以覆盖在原生组件之上 新增 可以展示微信开放数据 新增...上页面滚动时出现会随着页面滚动的问题 A 新增 canvas 上下文 setTextBaseline 接口 设置绘制文本时的文本基线 F 修复 canvas 上下文 setTextAlign iOS...支持全屏 A 新增 video 上下文 playbackRate 接口 支持倍速播放 F 修复 video 上下文 seek 接口 在播放前设置无效的问题 A 新增 组件 原生组件上显示基础原生视图

    1.8K80

    Skyline 渲染引擎——更接近原生渲染的性能体验

    为了进一步优化小程序性能,提供更为接近原生的用户体验,我们在 WebView 渲染之外新增了一个渲染引擎 Skyline,其使用更精简高效的渲染管线,并带来诸多增强特性,让 Skyline 拥有更接近原生渲染的性能体验...另一方面,Skyline 又添加了大量的特性,使开发者能够构建出类原生体验的小程序。在编码上,Skyline 与 WebView 模式保持一致,仍使用 WXML 和 WXSS 编写界面。...iOS 下原生组件同层渲染的原理先前有介绍过,本质上是在 WKWebView 黑盒下一种取巧的实现方式,并不能完美融合到 WKWebView 的渲染流程,因此很容易在一些特殊的样式发生变化后,同层渲染会失效...共享元素动画支持 跨页面共享元素,能够很方便地将上一个页面的元素“共享”到下一个页面,并伴随着过渡动画,同时支持了一套可定制化接口,能实现自定义的过渡动画。5....内置下拉刷新的实现,并完善相关事件。原来 WebView 的实现基于 transform,性能不够好且动画衔接不顺畅。提供“下拉二楼”交互的机制。

    76350

    移动端的touch事件处理

    使用原生的滚动事件Android 4.0 以下是不支持原生的 webview 滚动的,所以只能使用 iscroll 之类的工具来模拟元素滚动。...它的缺点就是有些过于的复杂,所以我还是会在条件允许的情况下使用原生的滚动。...启用原生滚动只需要给外层元素加上样式 -webkit-overflow-scrolling: touch; 即可,如果你的监听函数比较占用资源我们可以通过一个简单的 buffer 函数来限制它的触发间隔...禁用页面整体拖动IOS下默认情况下用户的拖动操作在scroll滚到头以后会导致整体页面的滚动,一种方式是禁用掉 document 的 touchmove 原生触发document.addEventListener...('touchmove', function(e) {  e.preventDefault();});此时原生的滚动是无法工作的,解决办法就是禁用滚动元素的 touchmove 事件冒泡scrollable.addEventListener

    1.9K20

    滑屏 H5 开发实践九问 - 腾讯ISUX

    如何节省工作量提高效率?面对性能优秀的 iOS 与性能良莠不齐的 Android 平台,又如何做到体验统一与性能最优? 第一问:拖拽翻屏,还是滑动翻屏? ? ? 页面随手势拖拽后翻屏 ? ?...简单的滑动可能两者并无太大差异,但假如把多样的需求和场景考虑到,可以发现在滑屏上也会细化出很多功能点: 循环滑动 滑动禁用与开启 预加载 / 延时加载 初始化时显示某一页 滚动到某一页、跳过某一页 提供滑动前...,而 iOS 和 Android 的大部分浏览器中,页面滚动时是会阻止页面重绘的(JS 的执行也无法立刻生效在页面中),所以Demo 里看到的效果就是回弹后才翻屏。...不过在 iPhone4/4s 这种小屏幕下,也可以尝试取消分屏滑动,直接用浏览器原生的滚动。...跟 Android 专门写一套代码,看似工作量大,其实可以规避掉很多不必要的麻烦。

    3.9K81

    多端开发实践 | 不同手机系统兼容性挑战与实战解决方案

    } 无返回值 */const useKeyboardScroll = ref => { useEffect(() => { /** * 键盘弹出事件处理函数 * 计算输入框位置并执行页面滚动调整...计算输入框与键盘的安全距离(屏幕高度60%位置为安全线) if (inputRect.bottom > viewportHeight * 0.6) { // 计算需要滚动的距离并执行平滑滚动...{ position: absolute; width: 0; height: 0; opacity: 0; }}设计思路:原生控件对非iOS设备保持可用iOS环境下隐藏原生控件...:通过监听 touchmove 事件并阻止默认行为 (preventScroll) 防止滚动其他设备:设置 body 样式 overflow: hidden; position: fixed; 隐藏滚动条...,同时记录当前滚动位置恢复滚动:卸载时,安卓设备移除事件监听,其他设备恢复 body 样式并还原滚动位置使用 useEffect 的空依赖数组确保逻辑仅在挂载/卸载时执行3.2 下拉刷新与内部滚动冲突:

    22731

    最新iOS设计规范四|3大界面要素:视图(Views)

    iOS是运行于iPhone、iPad和iPod touch设备上、最常用的移动操作系统之一。作为互联网应用的开发者、产品经理、体验设计师,都应当理解并熟悉平台的设计规范。...这有利于提高我们的工作效率,保证用户良好的体验。 本文是iOS设计规范系列第4篇,介绍3大界面要素(栏、视图、控件)中的视图(Views)。首先让我们回顾一下iOS的3大界面要素。...尽量保持消息足够短,尽量保持在一两行之内避免滚动,注意语句大小写及标点符号。 避免使用带有指责、批判、或侮辱性的词语。...如果在你的集合中很难找到某个条目,用户会感到沮丧并失去兴趣。在内容周围使用足够的填充,以保持布局整齐并防止内容重叠。 集合的方式不适用于文本信息,文本信息可以用列表。...这种选择有助于人们理解列之间的关系并保持自己的方向。 如果合适,允许人们在列之间拖放内容。

    10.1K31

    UITableView在Flutter中是什么?

    那么,当这些基本元素的排列布局超过屏幕显示尺寸(即超过一屏)时,我们就需要引入列表控件来展示视图的完整内容,并根据元素的多少进行自适应滚动展示。...在Flutter中,因为Widget并不是渲染到屏幕的最终视觉元素(RenderObject才是),所以我们无法像原生的iOS或Android一样,向持有的Widget对象获取或设置最终渲染相关的视觉信息...一般而言,获取视图的滚动信息往往是为了进行界面的状态控制,因此ScrollController的初始化、监听及销毁需要与StatefulWidget的状态保持同步。...= true;}); } else if(_controller.offset 滚动距离不足 300,则禁用 Top 按钮...总结 在处理展示一组连续、可滚动的视图元素的场景中,Flutter提供了比原生Android、iOS系统更为强大的列表组件ListView与CustomScrollView。

    6.5K10
    领券