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

移动端滚动研究

正常滚动和模拟滚动的性能比较 模拟滚动的fps值波动较大,这样滚动起来会有明显的卡顿感觉,各位体验的时候如果滚动超过10屏之后就可以明显感觉两着的区别。...滚动和下拉刷新 方案1:借助iscroll的原理,整个页面使用模拟滚动,将下拉刷新元素放在顶部,当页面滚动顶部下拉时,下拉刷新元素随着页面滚动出现,当手指离开时收回,此方案实现起来较为简单直接借助iscoll...方案2:页面使用正常滚动,将下拉刷新元素放置在顶部top值为负值(正常情况下不可见),当页面处于顶部时下拉,这时监听touchmove事件,修改scrollcontent的tranlateY值,同时修改下拉刷新元素的...特别是针对此类高频度触发事件问题(例如页面 scroll ,屏幕 resize,监听用户输入等)。...大概的做法就是在页面滚动的时候, 给 添加上 .disable-hover 样式,那么在滚动停止之前, 所有鼠标事件都将被禁止。当滚动结束之后,再移除该属性。

3.1K20

Android开发笔记(一百六十四)仿京东首页的下拉刷新

,状态栏的背景色从透明变为深灰,同时工具栏的背景也从透明变为白色; 3、页面下拉到顶,继续下拉会拉出带有“下拉刷新”字样的布局,此时松手则会触发页面刷新动作; 上面第一点的状态栏和工具栏悬浮效果,都有对应的解决办法...所以此处得捕捉页面滚动顶部的事件,相对应的则是页面滚动到底部的事件。鉴于App首页基本采用滚动视图ScrollView实现页面滚动功能,故而该问题就变成了如何监听该视图滚到顶部或者滚到底部。...正好ScrollView提供了滚动行为的变化方法onScrollChanged,通过重写该方法即可判断是否到达顶部或底部,重写的代码片段如下所示:     protected void onScrollChanged...这个和事佬必须是下拉布局和滚动视图的上级布局,考虑下拉布局在上,而滚动视图在下,故它俩的上级布局继承线性布局LinearLayout比较合适。...新的上层视图需要完成以下三项任务: 一、在下层视图的最前面自动添加一个下拉刷新头部,保证该下拉头部位于整个页面的最上方; 二、给前面自定义的滚动视图注册滚动监听器和触摸监听器,其中滚动监听器用于处理到达顶部

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

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

作为一个例子,带一个应用程序抽屉带有大量用户可能需要滚动的项目。当它们到达底部时,溢出容器将停止滚动,因为没有更多内容可供使用。换句话说,用户到达“滚动边界”。...当用户点击滚动边界时,某些应用可能希望提供不同的用户体验 ? (在Chrome Android上滚动链接) 拉到刷新效果 拉到刷新是一种直观的手势,通过Facebook和Twitter等移动应用推广。...拉下页面并释放,为更新近的帖子被加载。事实上,这种特殊用户体验非常流行,以至于Android这样的移动浏览器都采用了相同的效果。向下滑动页面顶部刷新整个页面 ? ?...最终的结果是当用户到达聊天记录的顶部/底部时,主页面保持放置状态。在聊天框中开始的滚动不会传播出去 ?...(聊天窗口下的内容也会滚动) 页面重叠场景 下面”方案的另一个变动就是是当你看到内容在固定位置叠加滚动时。一个死的样品overscroll行为是为了!浏览器试图帮助,但它最终使网站看起来越来越多。

3.2K20

无限滚动加载最佳实践

这种技术很简单,就是页面往下滚动的时候保持刷新。 ? 这项技术使用户在没有打断和额外交互的情况下滚动列表 —— 随着用户滚动,一条条的内容就出现了。...导航条保持可见 使用无限滚动时候,最好保持导航条持续可见,这样可以很快导航页面或应用的不同区域,对用户来说也更简单。如果找不到导航条,用户将不得不一路向上将页面滚回去。 ?...如果屏幕上是滚动的内容,用户滚动获取新内容的时候,导航条可以隐藏起来;当用户开始往回滚动试图回到顶部的时候再显示出来。 ? 2. 如果有页脚,加上“加载更多”按钮 无限滚动阻碍用户的访问页脚。...页脚包含“了解更多”、“帮助”等链接,但用户没办法真正点到任何一个,直到过一会儿,页面停止无限滚动。 ?...但是列表的位置不再存在了,这意味着使用浏览器的返回按钮一般都导致滚动位置重置页面顶部。无怪乎用户很快就觉得沮丧,都没有一个合适的“回到列表”的功能。 ?

4.2K20

微信小程序实践:2.3 可滚动的容器组件之 scroll-view

关于这个组件,有以下几个问题值得思考: 1,当我们说滚动时,涉及到外面的滚动容器与里面的可滚动实体两个对象,我们说滚动顶部滚动到底部,指的是什么呢?是什么到顶部,什么到底部了?...我们一般说「滚动顶部滚动到底部」,指的还不是内部滚动实体滚动到了它所能达到的最大值、最小值,而是指滚动实体顶部边缘到达了滚动外框的顶部,及底滚动实体底部边缘到达了滚动外框的底部。...这个属性默认是false,添加,功能才会开启。 什么是滚动锚定? 假设我们有一个图片瀑布流页面,这样的页面在网站上有许多,随处在一个设计网站上都可以看到。...通过wx.startPullDownRefresh触发下拉刷新,此时页面将拉于「更新中」的状态。当处理完异步加载,使用wx.stopPullDownRefresh停止更新状态。...在顶部自定义一个navigatorBar导航栏,单击一个按钮切换到一个页面,每个页面都是一个独立的scroll-view组件。

14.2K30

前端 实战项目·优雅实现 BackTop

优雅实现 BackTop BackTop 即滚动页面顶部,是很多网站都会用到的基础功能,实现方法很多,Github 上也有许多优秀的三方库,如 smooth-scroll,但如何优雅实现也是一门学问...事件绑定和解绑 滚动页面顶部的按钮一般位于页面角落,并且只有在需要的时候才显示出来。所以首先需要监听页面滚动事件,直到滚动到一定距离显示 BackTop 按钮。...监听页面滚动最简单的实现方式是使用 addEventListener 监听 scroll 事件,并在页面卸载时解除监听,代码如下: window.addEventListener('scroll', handleScroll...requestAnimationFrame 目的是为了让各种网页动画效果(DOM 动画、Canvas 动画、SVG 动画、WebGL 动画)能够有一个统一的刷新机制,从而节省系统资源,提高系统性能,改善视觉效果...使用 requestAnimationFrame 来实现滚动页面顶部的动画,核心是按帧来滚动小段距离来实现平滑滚动的效果,代码如下: // scrollTop animation export function

54640

​借助云开发数据库实现小程序列表上拉刷新功能丨云开发101

停止掉上拉刷新的动画效果。...特殊情况下的上拉刷新 除了直接在页面上使用上拉刷新的 API 以外,还会有另外一种场景,就是我们会将页面顶部固定,下方的部分滚动,比如腾讯视频的视频播放页面。...这个页面是在上方放置一个 Video Player,下方放置一个 scroll-view 来完成滑动,从而实现顶部的 Video Player 固定的效果。在这种情况下,我们应该如何实现上拉刷新呢?...停止掉上拉刷新的动画效果。...在这段代码中,因为我们没有直接触发页面的上拉效果,所以这里我们使用 wx.startPullDownRefresh 来触发页面的上拉效果,然后再使用云开发的 API 来完成数据的加载,加载完成,调用

58041

android 有阻尼下拉刷新列表的实现方法

本文将会介绍有阻尼下拉刷新列表的实现,先来看看效果预览: 这是下拉状态: ? 这是下拉松开手指listView回滚到刷新状态时的样子: ? 1....interface OnLoadCallBack { /** * 下拉结束将listView定位哪个位置等待刷新完成 * @return listView的定位y坐标值...在这个手势处理的实现中,当用户在下拉过程中突然将PullToRefreshListView往上拉,如果将PullToRefreshListView 拉到不处于“滚动顶部的状态”时,则重置下拉状态,使得...= false; } }); 为PullToRefreshListView设置一个OnScrollListener回调,并在其onScroll方法中监控其滚动位置,具体看注释也已经一目了然...*/ public interface OnLoadCallBack { /** * 下拉结束将listView定位哪个位置等待刷新完成 * @return listView的定位y坐标值,in

3.4K10

移动端H5坑位指南

页面包含多个滚动区域时,滚完一个区域若还存在滚动动量则会将这些剩余动量传播到下一个滚动区域,造成该区域也滚动起来。这种行为称为滚动传播。 若不想产生这种奇怪行为可直接禁止。...弹窗打开内部内容无法滚动 弹窗关闭页面滚动位置丢失 Webview能上下滑动露出底色 当打开弹窗时给声明position:fixed;left:0;width:100%并动态声明top。...也不能让页面刷新,可将接口请求放到beforeRouteEnter()里。...当输入完成键盘占位消失页面高度有可能回不到原来高度,产生坍塌导致Webview底色露脸,简单概括就是输入框失焦页面未回弹。...为了能让媒体在页面加载完成自动播放,只能显式声明播放。

3.4K10

rAF实现表格内容自动滚动

目标: 让表格的内容会自动滚动 鼠标悬浮,动画停止 到底后会自动回到顶部,继续滚动 element表格自带滚动 首先呢,element的表格是自带了滚动效果的,但是需要小小的设置一下。...也就是说rAF会跟着显示器地刷新频率走,能保证回调函数在每一次的刷新间隔制备执行一次,这样就不会引起丢帧,动画更流畅。...我们判断到底,就使用原生js的scrollTo方法,就能让它回到顶部。...,但是有时候需要突出排在前面的话,可能会到顶部需要慢慢地回滚到顶部,再重新自动滚动。...也就是说,scrollTo方法的参数添加 behavior: "smooth"来让它圆滑的回滚到顶部。 但是,我们添加了这个选项,反而不回滚了。这是因为动画一直都还在,回滚速度又不够动画的。

2K20

微信小程序官方组件展示之视图容器scroll-view

否iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只支持竖向1.0.0enable-flexbooleanFALSE否启用 flexbox 布局。...开启,当前节点声明了 `display: flex` 就会成为 flex container,并作用于其孩子节点。...(同时开启 enhanced 属性后生效) detail { scrollTop, scrollLeft, velocity }2.12.0bindscrolltouppereventhandle否滚动顶部...scroll-view 时会阻止页面回弹,所以在 scroll-view 中滚动,是无法触发 onPullDownRefresh4. tip: 若要使用下拉刷新,请使用页面滚动,而不是 scroll-view...,这样也能通过点击顶部状态栏回到页面顶部5. tip: scroll-view 自定义下拉刷新可以结合 WXS 事件响应 开发交互动画示例代码:JAVASCRIPTconst order = ['demo1

1.7K60

微信小程序开发学习笔记(二)——小程序框架、组件、WXML

开发者需要做的只是将页面的数据、方法、生命周期函数注册 框架 中,其他的一切复杂的操作都交由 框架 处理。...false 否 允许横向滚动 1.0.0 scroll-y boolean false 否 允许纵向滚动 1.0.0 upper-threshold number/string 50 否 距顶部/左边多远时...boolean false 否 iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只支持竖向。...enhanced 属性后生效) detail { scrollTop, scrollLeft, velocity } 2.12.0 bindscrolltoupper eventhandle 否 滚动顶部..."可能要发送的小程序"提示,用户点击可以快速发送小程序消息,open-type="contact"时有效 1.5.0 bindgetuserinfo eventhandle 否 用户点击该按钮时

1.9K40

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

页面包含多个滚动区域时,滚完一个区域若还存在滚动动量则会将这些剩余动量传播到下一个滚动区域,造成该区域也滚动起来。这种行为称为「滚动传播」。 若不想产生这种奇怪行为可直接禁止。...弹窗打开内部内容无法滚动 弹窗关闭页面滚动位置丢失 Webview能上下滑动露出底色 当打开弹窗时给声明position:fixed;left:0;width:100%并动态声明top。...也不能让页面刷新,可将接口请求放到beforeRouteEnter()里。...当输入完成键盘占位消失页面高度有可能回不到原来高度,产生坍塌导致Webview底色露脸,简单概括就是输入框失焦页面未回弹。...为了能让媒体在页面加载完成自动播放,只能显式声明播放。

4.2K21

LayaAir2.13.1新特性:摄像机增加非透明物体贴图、新增距离裁剪、列表ui组件增加橡皮筋回弹暂停、

2D引擎方面,List组件增加橡皮筋回弹暂停功能,以及顶部和底部的数据请求等待刷新示例。...本次版本,List的滚动条上提供了stopMoveLimit属性,用于停止橡皮筋的自动回弹。...提供了topMoveLimit与bottomMoveLimit属性,用于控制顶部或底部达到限制条件(拉动多少像素)触发对应的事件,通过侦听目标事件再完成数据请求逻辑,请求完成再恢复橡皮筋回弹。...dragTopLimit事件 this.refreshList.scrollBar.on("dragTopLimit", this, () => { //事件触发,立即停止滚动条回弹...事件 this.refreshList.scrollBar.on("dragBottomLimit", this, () => { //事件触发,立即停止滚动条回弹 this.scrollBarIsStop

72530

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

该实现主要在页面顶部放置一个指定名称的锚点链接,然后在页面下方放置一个返回到该锚点的链接,用户点击该链接即可返回到该锚点所在的顶部位置   [注意]关于锚点的详细信息移步至此 <body style="...元素未<em>滚动</em>时,scrollTop的值为0,如果元素被垂直<em>滚动</em>了,scrollTop的值大于0,且表示元素上方不可见内容的像素宽度   由于scrollTop是可写的,可以利用scrollTop来实现回到<em>顶部</em>的功能...window中显示的文档,x和y指定<em>滚动</em>的相对量   只要把当前<em>页面</em>的<em>滚动</em>长度作为参数,逆向<em>滚动</em>,则可以实现回到<em>顶部</em>的效果 <button...如果为true,表示元素的<em>顶部</em>与当前区域的可见部分的<em>顶部</em>对齐(前提是当前区域可<em>滚动</em>);如果为false,表示元素的底部与当前区域的可见部分的尾部对齐(前提是当前区域可<em>滚动</em>)。...如果没有提供该参数,默认为true   使用该方法的原理与使用锚点的原理类似,在<em>页面</em>最上方设置目标元素,当<em>页面</em><em>滚动</em>时,目标元素被<em>滚动</em>到<em>页面</em>区域以外,点击回到<em>顶部</em>按钮,使目标元素重新回到原来位置,则达到预期效果

4.9K21

vim-神之编辑器-命令汇总笔记

d$ 从光标删行末 3:插入 i      在光标前插入 ​​I     ​在当前行首插入 a      在光标插入 ​​A    ​ 在当前行尾插入 o      在下一行进入插入模式 O     ...Shift) 下一个标签页  K:上一个标签页 d:向下滚动半个屏幕   u:向上移动半个屏幕 g+g(连续按两下g):回到顶部 G:到达页面底部 H:后退   L: 前进 f:将当前网页上的所有可见链接...如果按的是F,那么将在新窗口中打开页面(见上图) g+i:将光标 定位输入框,如果有多个可以按Tab键切换 x:关闭当前页面   X:恢复刚刚关闭的页面 o:相当于Chrome中的地址栏,可以匹配历史记录...、收藏夹并在当前窗口打开,或者直接打开一个网址或者搜索一个关键字(Chrome在全屏的时候地址栏死都出不来,有了它就解决这个一直困扰我的问题了!...g+s:查看网页的源代码 r:重新载入当前网页(顺便提一句,这点上新浪微博和它是一样的,光标没有定位在发送框时,即便没有安装这个插件你也可以用j/k来控制页面上下滚动,用r在刷新,用f或者p来定位发送框

99630

移动端H5实现上滑分页加载功能

但在移动端这种方式就不太合适了,移动端一般都是通过向上滑动页面,触底加载下一页这种方式来实现的。...实现过程 思路:要达到触底的条件就是:滚动条的总高度 = 等于可视区的高度+滚动条距离顶部的高度;掘友们应该都知道我们可以通过监听页面的滑动事件来获取这三个值,然后进行一些操作就实现这个功能。...-- 里面是循环遍历的数据 --> // 页面滚动 pageScroll(e) { //变量scrollTop是滚动滚动时,距离顶部的距离 var...否则停止触底后下一页数据。...还有页面交互上的优化,比如上滑触底调后端接口的时间可以在页面底部放一个加载中的一个 loading 动态效果 这篇文章就记录到这了,下次有时间再写一篇用节流函数对 scroll 优化和防抖函数的作用的文章

3.2K20

vue上拉加载更多组件

容器自身的高度加上距离顶部的距离就是现在整个页面的高度。整个页面的高度减去可视窗口的高度再减去滚动条移动的距离,当接近0的时候就是到达底部的时候。 明白了这个原理上拉加载就很好实现了。...data: windowHeight: '',contentOffSetHeight: '',downT: '' 因为可视窗口和距离顶部的距离是不会变的,所以初始化的时候就赋值,downT是监听滚动防抖用的...最后beforeDestroy: window.scrollTo(0, 0); window.removeEventListener('scroll', this.onScroll) 刷新当前页面或者离开页面的时候移动到最顶部...,防止记住滚动条位置,亲测,要是没有设置history.scrollRestoration,vue生命周期会先移动到顶部然后再移动到记住的位置。...其实设置了这个移动到顶部也不需要,这边为了稳定就加上了。还有就是要移除监听滚动,我试了,跟定时间计时器一样,没有在组件销毁的时候移除,会一直存在。

2K10

前端性能优化之防抖与节流,大幅度降低你的事件处理性能

但是我们的目的可能只是想获得滚动停下来以后导航栏距离文档顶部的距离, 我们并不需要滚动停止前那过程中变化的距离, 如果一直在滚动时去获取距离,这非常影响性能,这是我们就需要用到 防抖和节流了。...那么防抖,就是我们滚动页面,刚要获取导航栏离文档顶部的距离,但是发现等会还要继续滚动,那么就先不获取了,等什么时候停止滚动了,再获取这个距离。...现在,我们来看一下,运用了防抖之后滚动页面会有什么效果 ? 我们可以很清楚的看到,在我们滚动的过程中,一直没有打印数据,直到我们停止以后, 控制台打印了导航栏离文档顶部的距离。...那么,节流就是, 我们滚动页面,获取了一下导航栏离文档顶部的距离, 此时我们一直在滚动页面, 只不过我们刚获取过距离了,就先不获取了, 等距离上一次获取几秒,我们再获取一次吧。...就这样一直频繁触发滚动事件,按照步骤2循环往复…… 直到距离上次操作超过1秒, now - last 大于1秒,才会再一次获取导航栏离文档顶部的距离,并又一次给 last 赋值一个操作结束时的时间戳

1.5K20
领券