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

Scroll,你玩明白了嘛?

今天主要聊一下关于 scroll 应用: CSS 平滑滚动 JS 滚动方法 区分人为滚动和脚本滚动 2、CSS 平滑滚动 2.1 一行样式改善体验 一些滚动交互比较频繁场景,我们可以通过滚动容器上增加一行样式来改善用户体验...而且相较于其他方法,一般不会出什么幺蛾子(后文会讲到)。 3.2 应用 自己以往需要用到滚动场景有: 组件初始化,定位目标位置 点击当前页靠底部某个元素,触发滚动翻页 .........根据上面提到我们可以用很多种方式去实现,假设我们已经为列表容器增加了 scroll-behavior: smooth 样式,然后 useEffect hook 中去调用滚动方法: import React...>  ); } 上述代码,提到了四种方式: 容器 scrollTop 赋值 容器 scrollTo 方法,传入横纵滚动位置 容器 scrollTo 方法,传入滚动配置 元素 scrollIntoView...但实际上滚动是一个很快过程,跟我们兜底定时器逻辑,也就是前后脚事情,是不是可以只保留兜底逻辑?

3K21

前端架构探索与实践

而我们使用源码编写,主要是基于以下几点思考: 稳定性要求高 页面模块多不定 快速回方案 模块通信复杂 源码架构 ? 架构图 ❝架构图需要调整。...对于一个页面,无论是 react 还是 rax,其实都是 fn(x)=>UI 过程。所以整理流程无非就是拿到接口属于渲染 UI 。所以对于中间页架构而言也是如此。...所以对于容器底层,之前使用 RecycleView :固定 div 高度,基于 overflow 来实现滚动。 虽然, h5 里面这种滚动机制有些”难受“,但是罪不至”换“。...但是尴尬至于在于,iOS 橡皮筋想过,页面滚动到顶部以后,如果页面有频繁动画或者 setState 时候,会导致页面重绘,重新回到顶部。...与手动下拉页面容器橡皮筋效果冲突,「倒是页面疯狂抖动」。所以。。。。重构。 旧版容器功能点 ❝源码页面中使用部分 ❞ ? 重构后使用 ❝基本没有太大改变 ❞ ?

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

从 antDesign 来窥探移动端“滚动穿透”行为

简单直译过来是说默认情况下,当到达页面的顶部底部其他滚动区域)时,移动浏览器倾向于提供“弹跳”效果甚至页面刷新。...您可能还注意,当滚动内容页面顶部有一个包含滚动内容对话框时,一旦到达对话框滚动边界,底层页面就会开始滚动 - 这称为滚动链接。...将可滚动元素拖动至顶部或者底部时,继续拖动触发最近可滚动祖先元素滚动。 还有另一种常见场景,我们某个可滚动元素上进行拖动时,当该元素滚动条已经到达顶部/底部。...我们子元素区域内进行拖拽时,当子元素滚动到底部(顶部)时,仍然继续往下(上)进行拖动。 原理 上述两种情况相信大家也日常业务开发碰到过不少次。...而对于目标节点可以滚动时,当滚动到顶部/底部继续进行滚动时,同样会意外触发祖先节点滚动

35520

vue上拉加载更多组件

要写上拉加载其实还分两种场景,一种是相对window,也就是相对于可视窗口,一种一个容器内。大部分使用场景是相对窗口,所以暂时只写了一个相对于window。...上拉加载原理简单来说就是判断内容是否到达底部容器自身高度加上距离顶部距离就是现在整个页面的高度。整个页面的高度减去可视窗口高度再减去滚动条移动距离,当接近0时候就是到达底部时候。...Props: props: ['up', 'bottomDistance'], up对应就是父组件传递到达底部是触发方法,'bottomDistance'是可以设置到达底部距离多少时候触发加载更多方法...其实设置了这个移动到顶部也不需要,这边为了稳定就加上了。还有就是要移除监听滚动,我试了,跟定时间计时器一样,没有组件销毁时候移除,会一直存在。...要说是,这边没有写加载更多动画效果,使用时候可以自定义一个然后隐藏,触发加载更多时候显示,加载完之后隐藏,包括已经到底部,都可以自定义。

2K10

H5C3第四节

弹性布局(伸缩布局) Flex是Flexible Box缩写,翻译成中文就是“弹性盒子”,用来为盒装模型提供最大灵活性。任何一个容器可以指定为Flex布局。...CSS3布局方面做了非常大改进,使得我们对块级元素布局排列变得十分灵活,适应性非常强,其强大伸缩性,响应式开可以发挥极大作用。...("mousewheel", function( e ) { // e.wheelDelta 鼠标滚动量, 大于0向上, 小于0向下 if (e.wheelDelta > 0) {...loopTop 滚动到顶部后是否连续滚动到底部,默认false loopBottom 滚动到底部后是否连续滚动到顶部,默认false continuousVertical 是否循环滚动,默认为false...nextIndex是滚动到页面的序号,direction是往上还是往下滚动,值是up或者down.

5.3K30

来自 React 19 背刺:forwardRef 被无情抛弃

IOC 设计理念里,有三个角色,一个角色是容器 C,一个角色是被控制者 B,一个角色是控制者 A,许多时候,代码开发,控制者 A 直接去控制对象 B,会导致 B 被多次实例化从让代码逻辑变得更加复杂...因此, React 组件封装,并不支持直接获取到 input 引用,而是以一种传入控制器方式来调用它。...✓注意一些概念上区分:控制反转是一种设计思维,依赖注入是控制反转一种具体实现, React ,ref 也是一种控制反转具体实现 所以不要听着别人吹控制反转就觉得牛,你可能也天天在用 2、forwardRef...如果不传入依赖项,那么每次更新 createHandle 都会重新执行 官方文档,有这样一个案例,演示效果如图所示,当我点击按钮时,下方 input 自动获取焦点,并且中间滚动滚动到底部。...> Write a comment 我们期望点击按钮时,信息部分输入框自动获取焦点,信息部分信息展示区域能滚动到底部,因此整个页面组件代码可以表示为如下

13810

fullPage.js全屏滚动插件

如果你要制作一个全屏网页,使用这个插件合适不过,如QQ浏览器官方网站 直接下载 使用方法 1.引入fullpage.css文件 <link rel="stylesheet" type="text...controlArrowColor (string) 左右滑块<em>的</em>箭头<em>的</em>背景颜色 loopBottom (true/false)<em>滚动到</em>最<em>底部</em>后是否滚回顶部 loopTop (true/false)...<em>滚动到</em>最顶部后是否<em>滚</em><em>底部</em> loopHorizontal (true/false)左右滑块是否循环滑动 autoScrolling (true/false) 是否使用插件<em>的</em><em>滚动</em>方式,如果选择 false...个参数:index 是离开<em>的</em>“<em>页面</em>”<em>的</em>序号,从1开始计算;nextIndex 是<em>滚动到</em><em>的</em>“<em>页面</em>”<em>的</em>序号,从1开始计算;direction 判断往上<em>滚动</em>还是往下<em>滚动</em>,值是 up <em>或</em> down。...afterRender <em>页面</em>结构生成后<em>的</em>回调函数,或者说<em>页面</em>初始化完成后<em>的</em>回调函数 afterSlideLoad <em>滚动到</em>某一水平滑块后<em>的</em>回调函数,与 afterLoad 类似,接收 anchorLink

14.8K20

Js处理滚动条和日期框

例如百度搜索,最后选择这个页面跳转: ? 例如底部页面跳转:有的系统,虽然进来是这个地方,想操作页面底部元素,可以操作,也不需要拖动滚动条,它会自动将它拖动到可见区域,然后去操作它。...7)方法.scrolllntoView()和方法.scrolllntoView(false)区别: 用电脑打开一个页面整个浏览器网页内容可视区当中,有宽和高。 ? 这个是浏览器可视区高度。...例如元素页面正中间,想将它滚动到可见区域,必须有向上和向下这2种做法。 如果你希望他向上一种,.scrolllntoView()默认跟页面顶部对齐: ?...一种方法.scrolllntoView(false)默认与页面底部对齐: ? 8)为什么会有上下之分? 有的时候网页是有遮罩层: ? 这条区域线才是顶部: ? 9)一般用底部?...JsinnerText用法: innerText可获取设置指定元素标签内文本值,从该元素标签起始位置终止位置全部文本内容(不包含html标签)。

10.8K10

Web前端实现锚点功能三种方式

window.location.href='#root'; // window.location.hash='#root'; 二、scrollIntoView Element.scrollIntoView 方法滚动元素容器...默认为 "start",元素顶部将滚动到视窗顶部; 取值 "end",元素底部将和视窗底部对齐; 取值 "center",元素中线将和视窗中间对齐; 取值 "nearest",元素将就近对齐。...即,若页面向上滚动,则顶部对齐;若页面向下滚动,则底部对齐。 inline,定义水平方向对齐, "start", "center", "end", "nearest"之一。...含义同 block 选项取值。 三、scrollTo/scrollBy window.scrollTo 可将视窗滚动到指定坐标。...(domScrollLeft, targetOffsetTop); 同理,滚动元素与视窗底部或与视窗中间对齐亦可取参计算。

2.9K31

react native简单入门

测试 : 测试2} react native 基本组件介绍 View 相当于htmldiv,块容器 Image 图片展示组件,常用属性如下: source...Modal ScrollView horizontal 当此属性为true时候,所有的子视图会在水平方向上排成一行,不是默认垂直方向上排成一列。默认值为false。...FlatList data 数据 renderItem 每一项渲染组件 onEndReached 当列表被滚动到距离内容最底部不足onEndReachedThreshold距离时调用 onEndReachedThreshold...可重写右侧按钮 导航栏路由组件定义 路由跳转 router文件定义了三个跳转方法,jump, jumpRNApp, jumpApp jump代表正常RN页面之间跳转 jumpRNApp代表RN页面之间需要跨路由...RN页面 getUserInfo 获取用户信息 AppEventListener 监听App调用,包括路由跳转和重新加载 日志记录 通过引入serviceslogger,调用其方法进行日志输出。

3.5K10

《最新出炉》系列入门篇-Python+Playwright自动化测试-50-滚动条操作

1.简介有些页面的内容不是打开页面时直接加载,需要我们滚动页面,直到页面的位置显示屏幕上时,才会去请求服务器,加载相关内容,这就是我们常说懒加载。...Chrome可通过F12调试查看页面元素。不是元素根本就没有,当滚动时才延迟加载。是可以直接操作,而且playwright 点击元素时候,会自动滚动到元素出现位置,这点是非常人性化。...页面如果有两个滚动条,要操作目标滚动条,首先要使用当前光标移动至滚动条所在框div 、iframe等),才可以进行操作。...如下图所示:4.JavaScript脚本操作滚动条4.1原理可以使用JS语句,定位滚动位置最下面,从而实现页面的向下滚动。这种方法一般来说就是终极大招,如果这个都不行,可能就没有办法了。...,如下图所示:2.运行代码后电脑端浏览器动作(宏哥滚动位置设置值比较大,所以滚动到底部)。

12620

亲手打造属于你 React Hooks

我们将把这个钩子放到一个名为 useCopyToClipboard.js 文件,并创建一个同名函数。 我们有多种方法可以将一些文本复制用户剪贴板。... : } ); } usePageBottom Hook React 应用,有时了解用户何时滚动到页面底部是很重要...在你可以无限滚动应用,比如微博,一旦用户点击页面底部,你就需要获取更多帖子。 让我们看看如何自己创建一个 usePageBottom钩子,用于类似的用例,比如创建无限滚动。...(() => {}, []); } 当窗口innerHeight值加上文档scrollTop值等于offsetHeight值时,用户将滚动到页面底部。...我决定创建自己钩子来提供窗口尺寸,包括宽度和高度,不是引入整个第三方库。我把这个钩子叫做useWindowSize。

10K60

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

使用该案例包括禁用移动设备上“拉动到刷新”功能,消除过度滚动发光和橡皮筋效果,并防止页面内容模态/叠加层下滚动 背景 滚动边界和滚动链接 滚动是与页面交互最基本方式之一,但是由于浏览器诡异默认行为...但是请注意,如果用户继续滚动会发生什么情况。抽屉后面的内容开始滚动滚动由父容器占领;例子页面本身 被证实这种行为称为滚动链接;滚动内容时浏览器默认行为。...开发人员最终编写不必要JavaScript,添加非被动触摸监听器(阻止滚动),或者将整个页面粘贴到100vw / vh(以防止页面溢出)。...这些变通办法滚动性能方面具有良好记录负面影响 引入overscroll行为 overscroll-behavior属性是一个新CSS功能,用于控制当你过度滚动容器(包括页面本身)时发生情况。...最终结果是当用户到达聊天记录顶部/底部时,主页面保持放置状态。聊天框开始滚动不会传播出去 ?

3.2K20

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

项目地址 在这里,如果有好意见欢迎提 issuepr。 开始 我们先来看下,腾讯课堂视频播放详情页面是怎么样? ?...发现第一种方法解决如何寻找子控件并判断滚动状态上没有方法(可能是我没发现)以及性能上考量,那就采用第二种方法。 分析 为了解决上面的问题,我们需要了解几个关键点。...一个是怎么判断手势滑动以及外层滚动容器底部和内层滚动到顶部? 第二个是寻找滚动组件并通知内层滚动组件开始滚动?...寻找内层滚动容器,一开始是认为递归寻找可见ScrollView实例(Android界面控件是一种树形结构),通过Hierarchy Viewer工具发现这三个都是可见,随后对比三个ScrollView...具体可以参考我以前写事件分发机制学习。 回过头来讲外层滚动容器通知内层滚动,其实通知滚动相当于不拦截事件,那么就是重写 onInterceptTouchEvent方法并返回false。

4.8K70

2019-08-09 满屏切换vue项目中使用 vue-fullpage.js

, // //页面滚动速度 // scrollingSpeed: 700, // //定义锚链接,用户可以快速打开定位某一页面;不需要加"#",不要和页面任意id和name相同...// //滚动到最顶部后是否连续滚动到底部 // loopTop: true, // //滚动到底部后是否连续滚动到顶部 // loopBottom: true...: ".nav", // //是否可以使用键盘方向键导航 // keyboardScrolling: false, // //移动设置页面敏感性,最大为100,越大越难滑动 //...如果设置为true,则页面会循环滚动不像loopToploopBottom那样出现跳动,注意这个属性和loopTop、loopBottom不兼容和,不要同时设置 menu: '...// //定义锚链接,用户可以快速打开定位某一页面;不需要加"#",不要和页面任意id和name相同 // anchors: ["page1","page2","page3"]

11.7K30

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

所以此处得捕捉页面滚动到顶部事件,相对应则是页面滚动到底部事件。鉴于App首页基本采用滚动视图ScrollView实现页面滚动功能,故而该问题就变成了如何监听该视图滚到顶部或者滚到底部。...正好ScrollView提供了滚动行为变化方法onScrollChanged,通过重写该方法即可判断是否到达顶部底部,重写后代码片段如下所示:     protected void onScrollChanged...然而成功监听页面是否到达顶部底部,仅仅解决了状态栏和工具栏变色问题。因为页面到顶时继续下拉,ScrollView要怎么处理?...这个和事佬必须是下拉布局和滚动视图上级布局,考虑下拉布局在上,滚动视图在下,故它俩上级布局继承线性布局LinearLayout比较合适。.../底部事件,触摸监听器用于处理下拉过程持续位移。

2.8K40

实现滚动时Header自动隐藏

这是掘金网页版头部,当滚动条向下滑动时,主header会隐藏,次级header会吸页面顶部。...甚至y值能到负值 查看示例 这里还有一个问题,只检测了滚动到顶部,没有检测滚动到底部。这是因为我没想到什么很好方法去检测。...前者,可以通过判断y值是否为0(小于0)来实现;而后者,正常来说,滚动到底部时,文档高度-视窗高度应该和滚动y值是一致。...但是safari里可能不一致,safari,当地址栏收缩时,上文公式成立;但是当地址栏是展开状态时,两者会一个相差地址栏高度。地址栏是否展开我没找到判断方法。...如果有知道如何判断是否滚动到底部,希望能够和我分享分享 code{background: #f5f2f0;}

2.2K30

图解浏览器各种距离

比如 OnBoarding 组件,我们要拿到每一步高亮元素位置、宽高: 比如 Popover 组件,需要拿到每个元素位置,然后确定浮层位置: 比如滚动到页面底部,触发列表加载,这需要拿到滚动距离和页面的高度...我们只看 y 轴方向好了,x 轴也是一样。 事件对象可以拿到 pageY、clientY、offsetY,分别代表到点击位置文档顶部,可视区域顶部,触发事件元素顶部距离。...这里 getBoundingClientRect 是返回元素距离可以可视区域距离和宽高 window.pageYOffset 也叫 window.scrollY,顾名思义就是窗口滚动距离。...比如页面是否滚动到底部,就可以通过 document.documentElement.scrollTop + window.innerHeihgt 和 document.documentElement.scrollHeight...所以,对于滚动到页面底部判断,就可以用 window.scrollY + window.innerHeight 和 document.documentElement.scrollHeight 对比。

8810

微信小程序之上拉加载与下拉刷新

一种移动端常见操作,就是像在刷微博微信朋友圈时候,我想看看有没有内容出现,就会在页面到顶时候,将页面从上往下拖拉(这个时候页顶通常会出现一个转动菊花之类),然后放开手指,伴随着一声清脆叮铃咚隆声...这种向下拖拉刷新交互方式(简称下拉刷新),移动端可以说是一种非常自然且方便操作,现在移动应用中被广泛采用。...上拉加载 前面我们已经了解下拉加载本质是一个分页加载,每次触发加载下一页条件是当前页面到达底部,因此,我们可以整理出一个实现基本思路: 初始页号为1,向后端请求第一页数据(数据包含数据总条数...感觉实现起来也不难,主要就是其中“监听页面是否被滚动到底部”如何来实现?...Web页面开发,我们会通过监听window.onscroll事件,该事件处理方法获取当前页高度和滚动量,以此来计算判断页面是否已滚动到底。

4.2K20

如何使用 CSS 设置和自定义水平和垂直滚动

本节,我们将专注于防止侧边栏滚动主要内容时移动。我们希望将侧边栏样式设置为固定位置,以便主体可以自行滚动不带上侧边栏。...从截图中可以看出,侧边栏底部看起来不像设置底部。这是因为内容比其容器高度长。在下一节,我们将学习如何防止导航项目列表显示侧边栏之外。d)....将overflow-x属性值设置为scroll可以将水平滚动条添加到容器底部。您网站用户将能够平稳地滚动容器内容。您已成功创建了水平和垂直滚动条。...c) 一次性样式所有滚动条a). 样式特定滚动条。有一种简单方法可以为网站上不同滚动条设置特定样式。这涉及通过设置滚动容器来添加样式。您可以通过标签名称类名称选择容器并向其分配样式。...以下代码片段描述了如何一次性地应用滚动条样式整个网站所有滚动条。

63300
领券