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

恢复 RecyclerView 滚动位置

您可能在开发过程中遇到过这种情况,在 Activity/Fragment 被重新创建后,RecyclerView 丢失了它之前保有的滚动位置信息。...通常这种情况发生原因是由于异步加载 Adapter 数据,且数据在 RecyclerView 需要进行布局时候尚未加载完成,导致 RecyclerView 无法恢复之前滚动位置。...从  1.2.0-alpha02 版本开始,Jetpack RecyclerView 提供了一个新 API,可以让 Adapter  在数据加载完成之前阻塞布局行为 ,从而避免丢失滚动位置信息。...接下来我们会介绍如何使用这个新 API,以及它工作原理。 恢复至原有滚动位置 有好几种方法可以用来恢复 RecyclerView 至正确滚动位置,您可能已经在实际项目中用到了这些方法。...其中最好一种方法是将数据提前缓存在内存、ViewModel 或 Repository 中,然后确保在第一次布局传入之前,将缓存数据设置 Adapter 中去。

1.4K10

JS实现页面进入、返回定位具体位置总结

JS实现页面返回到具体位置方法 其实浏览器也自带了返回功能,也就是说,自带了返回定位功能。正常跳转,返回确实可以定位,但是有些特殊场景就不适 用了。...②利用距离顶部距离,在跳转时候带上当前位置滚动距离,返回时候定位该处。 应用场景 定位某一个模块时候,有二级定位时候利用方法①....定位具体位置时候,定位某一个模块时候,利用方法②。...初始化页面的时候,需要给每个模块指定一个唯一id。打开页面的时候,如果url带着位置参数则解释参数定位,如果没有,默认为第一个。...要带着当前位置滚动过距离跳转。

3.8K10

页面回发后,让页面自动滚动到指定位置一种简单方法

突然找到了一个老问题解决方法。 就是当用户按一个按钮后,希望回发后页面滚到一个指定位置,而不是页面的开头部分。...博克园里“最新评论”里链接,点击后打开页面会直接滚动到指定评论而不是帖子一开始位置。...很简单,在页面加载完毕之后执行这个js语句就可以了 document.getElementById("a001").click(); 等等,并不是每一次看这个页面都要自动滚动者这个标签上呀,...等等好像还有一个问题,如果在同一个页面里,需要根据不同情况,跳到不同位置怎么办呀。这个也简单。...我们多做几个 标签,标记多个位置,然后要跳到哪里就把对应 标签ID放在文本框里面。在稍微修改一下js函数就可以了。

3.1K70

vue返回上一页面时回到原先滚动位置

项目结束,测试时发现在首页商品列表中,向上滑动几页后点击进入详情,从详情页面返回商品列表时,页面回到了最顶部,测试不通过说是用户体验不好,要求从哪里点击进去返回该页面时回到原先滚动页面。...$route.meta.keepAlive"> (2).index.js页面 export default new Router({...component: index, meta: { keepAlive: true } }, 这样在index.vue中,mounted方发只走一次,在浏览器上实现了返回原来滚动位置目的...但是在手机上测试,发现没用, 解决手机上实现目的方法: //在页面离开时记录滚动位置 beforeRouteLeave (to, from, next) { this.scrollTop =...document.documentElement.scrollTop || document.body.scrollTop next() }, //进入该页面时,用之前保存滚动位置赋值 beforeRouteEnter

2.9K20

通过 JS 判断页面是否有滚动简单方法

前言 最近在写插件过程中,需要使用 JS 判断是否有滚动条,搜了一下,大致方法都差不多,但都有些啰嗦,代码不够简洁。最终通过参考不同方法,写了一个比较简单方法。...判断滚动需求在弹窗插件中用较多,因为弹窗大多会添加 overflow: hidden 属性,如果页面比较长的话,添加这个属性之后页面会有晃动。...为了增强用户体验,通过判断是否有滚动条而添加 margin-left 属性以抵消 overflow: hidden 之后滚动位置。...判断是否有滚动方法 其实只需要一行 JS 就可以,测试兼容 IE7 function hasScrollbar() { return document.body.scrollHeight >...计算滚动条宽度方法 还是以弹窗为例,因为 IE 10 以上以及移动端浏览器滚动条都是不占据页面宽度透明样式(其中 IE 10 以上浏览器可以通过 CSS 属性还原原始滚动条样式),所以为了进一步增强用户体验

8.1K90

蒙层禁止页面滚动方案

蒙层禁止页面滚动方案 弹窗是一种常见交互方式,而蒙层是弹窗必不可少元素,用于隔断页面与弹窗区块,暂时阻断页面的交互。...但是在蒙层出现时候滚动页面,如果不加处理,蒙层底部页面会开始滚动,实际上我们是不希望他进行滚动,因此需要阻止这种行为。...当弹出蒙层时禁止蒙层下页面滚动,也可以称为滚动穿透问题,文中介绍了一些常用解决方案。...所以如果在蒙层内部有元素需要滚动的话,需要用Js控制其逻辑,但是逻辑控制起来又是比较复杂,我们可以判断事件event.target元素,如果touch目标是弹窗不可滚动区域即背景蒙层就禁掉默认事件...,反之就不做控制,之后又出现了问题,需要判断滚动到顶部和滚动到底部时候禁止滚动,否则触碰到上下两端,弹窗可滚动区域滚动条到了顶部或者底部,依旧穿透body,使得body跟随弹窗滚动,这样的话逻辑复杂程度就比较高了

6K21

vue里监听页面滚动问题

; 屏幕可用工作区宽度:window.screen.availWidth; scrollHeight: 获取对象滚动高度。...scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容最左端之间距离 scrollTop:设置或获取位于对象最顶端和窗口中可见内容最顶端之间距离 scrollWidth:获取对象滚动宽度...offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定父坐标的高度 offsetLeft:获取对象相对于版面或由 offsetParent 属性指定父坐标的计算左侧位置...offsetTop:获取对象相对于版面或由 offsetTop 属性指定父坐标的计算顶端位置 event.clientX 相对文档水平座标 event.clientY 相对文档垂直座标 event.offsetX...相对文档水平座标+垂直方向滚动量 要获取当前页面滚动条纵坐标位置,用: document.documentElement.scrollTop; 而不是: document.body.scrollTop

3.3K40

利用本地存储,记录滚动位置

我们先在手机微信打开HTML5学堂订阅号中文章,当文章浏览某一个位置时候点击左上角返回,然后再次点击刚刚浏览过那篇文章,显示出来是你刚才阅读到位置,而不是从头开始显示,这个用户体验是不是觉得很赞...2、功能分析 这个功能实现并不是很难,当页面滚动时记录页面滚动位置并保存到本地存储里面,当你再次打开页面的时候读取本地存储里面的值来设置页面滚动位置。具体我们来分析一下。...分析: 1、监听页面滚动状态(是否滚动) 2、滚动时获取页面滚动位置 3、滚动位置保存到本地存储里面 4、页面每次加载时候获取本地存储里面的值 5、获取到值来设置页面滚动位置 3、知识要点...2、滚动时获取页面滚动位置 代码中解决了获取滚动位置兼容问题。...'); } 5、获取到值来设置页面滚动位置 跟获取滚动位置一样处理了浏览器兼容问题。

2.6K70

clipboard.js:最轻便复制页面内容剪切板JS

最近在做一个项目的时候,需要实现一个功能就是点击一个按钮,将内容复制剪贴板。...传统复制页面内容剪切板主要方法是通过 Flash,但是在现代浏览器中,Flash 逐渐没落,慢慢被淘汰,搜索了一圈,发现 clipboard.js 是目前实现该功能最轻便工具。...clipboard.js 使用方法 clipboard.js 只有3kb大小,无需 Flash,兼容所有现代浏览器,但是经过测试不支持微信内置浏览器。...使用还算简单,简单几步就搞定,下面简单介绍下clipboard.js使用方法: 1....,可以通过 data-clipboard-text 定义到点击按钮上 clipboard.js 演示 我爱水煮鱼是最好博客 复制 clipboard.js 事件 有时候我们需要一些用户反馈,在初始化对象时候可以定义

2.5K60

用Javascript获取页面元素位置

一张网页全部面积,就是它大小。通常情况下,网页大小由内容和CSS样式表决定。 浏览器窗口大小,则是指在浏览器窗口中看到那部分网页面积,又叫做viewport(视口)。...使用时候,有三个地方需要注意: 1)这个函数必须在页面加载完成后才能运行,否则document对象还没生成,浏览器会报错。...五、获取网页元素相对位置 网页元素相对位置,指该元素左上角相对于浏览器窗口左上角坐标。 有了绝对位置以后,获得相对位置就很容易了,只要将绝对坐标减去页面滚动滚动距离就可以了。...滚动滚动垂直距离,是document对象scrollTop属性;滚动滚动水平距离是document对象scrollLeft属性。...并且会立即自动滚动网页相应位置,因此可以利用它们改变网页元素相对位置

3.2K70

Selenium 滚动页面至元素可见方法

滚动页面   在自动化操作中,如果web页面过长,而我们需要元素并不在当前可视页面中,那么selenium就无法对其进行操作;此时,我们就需要像平时操作浏览器一样来滚动页面,使我们需要操作对象可见...滚动页面的方法: window.scrollBy() window.scrollBy(0,500)   向下滚动500个像素 window.scrollBy(0,-500)   向上滚动500个像素 window.scrollBy...200个像素 driver.execute_script('window.scrollBy(0,200)') time.sleep(2) # 滚动至元素ele可见位置 eles = driver.find_elements_by_css_selector...200个像素 driver.execute_script('window.scrollBy(200,0)') time.sleep(2) driver.quit() 到此这篇关于Selenium 滚动页面至元素可见文章就介绍这了...,更多相关Selenium 滚动页面 内容请搜索ZaLou.Cn以前文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

6.8K41
领券