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

【交互探讨】无限滚动还是分页展示,这是个问题!

如果我们想要到达页脚,每次滚动时,我们都需要滚动快一点,以便在新的项目流进入之前获得一个到达页脚的神奇机会。有时用户发现自己面临滚动挑战而同时按下 Esc键以便及时取消无限滚动。...也许有一点过时,但非常可靠:Thinkific.com.上的分页(大图预览) 另外,还能让用户控制页面上显示数据的多少(通常使用控件来更改每页项目展示的个数),每个页面的URL都不同,页脚很容易到达,页面上出现的内容的多少可以由用户自己选择...在初始的几屏页面上,新项目会通过滚动操作出现。只有当用户阅读数达到58个项目时,“加载更多”按钮才会开始出现。...“加载更多”在电子商务中应用效果很好 ——因为所有项目都显示在一个页面上,并且页脚总是可以到达的,因此用户可以很好控制他们看到的所有项目。...例如,一旦用户浏览了“页面”1、2 和 3,现在已经登陆“页面”4,是否应该单击“返回”按钮将他们从第4页带到第3页,或者到他们在第1页之前访问过的上一页 ?

3.3K20

3分钟搞定图片懒加载

为什么需要懒加载 对于一个页面加载速度影响最大的因素之一就是图片资源,如果一个页面图片太多(比如某宝,某东等),整个页面的图片大小可以到达几百兆,即使在百兆宽带,全部下载的话,也需要上十秒的时间,这对于用户耐心的考验是巨大的...下面改造成懒加载: 首先将页面上的图片的 src 属性设为空字符串,而图片的真实路径则设置在data-src属性中。...随着滚动条的向下滚动,bound.top会越来越小,也就是图片到可视区域顶部的距离越来越小,当bound.top 的上沿应该是位于可视区域下沿的位置的临界点,再滚动一点点...思路:当页面滚动的时候需要去监听scroll事件,在scroll事件的回调中,判断滚动条是否滚动到最底部,如果是,则将将图片的 src 属性设置为data-src的值。...当滚动到20张图的底部的时候,就会发出ajax请求,请求下一页数据。 ? 至此本文完,有疑问可以在评论区随时交流哈。

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

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

    使用该案例包括禁用移动设备上的“拉动到刷新”功能,消除过度滚动发光和橡皮筋效果,并防止页面内容在模态/叠加层下滚动 背景 滚动边界和滚动链接 滚动是与页面交互的最基本的方式之一,但是由于浏览器的诡异默认行为...最终的结果是当用户到达聊天记录的顶部/底部时,主页面保持放置状态。在聊天框中开始的滚动不会传播出去 ?...(聊天窗口下的内容也会滚动) 页面重叠场景 下面”方案的另一个变动就是是当你看到内容在固定位置叠加后滚动时。一个死的样品overscroll行为是为了!浏览器试图帮助,但它最终使网站看起来越来越多。...示例 - 带和不带过度滚动行为的模态:包含 ? ? (左边之前:页面内容在叠加层下滚动,右边之后:页面内容不会在叠加层下滚动) 禁用拉到刷新 关闭pull-to-refresh操作是一行CSS。...(示例效果) 总结 本文主要是针对页面上的滚动,自定义下拉刷新与溢出效果,通过css中的overscroll-behavior:container阻止滚动链接,也就是在触发子元素的事件操作时,不会传递给父级元素

    3.5K20

    「实用推荐」如何优雅的判断元素是否进入当前视区

    背景 在上篇文章:记一次 「 无限列表 」滚动优化 中, 我介绍了「 如何优化一个无限滚动列表 」。 用到了懒加载方案, 一个关键点是:需要判断元素是否在当前视区。 我们今天就看看这个问题。...这将是我们将要观察的页面上的实际元素 intersectionRect:intersectionRect 告诉元素的可见部分。...threshold: [0], }); 有一点要注意:IntersectionObserver 不是完美精确到像素级别,也不是低延时性的。 使用它实现类似依赖滚动效果的动画注定会失败。...,最好在页面底部有一个页尾栏。...一旦页尾栏可见,就表示用户到达了页面底部,从而加载新的条目放在页尾栏前面。

    1.4K20

    摸鱼的新发现,滚动条无限滚动

    在一次调试的过程中,我按下了F12刚好是掘金的页面,然后把代码输入到控制台之后,顺手滚动了几下右侧的滚动条,发现个问题如下图所示: ? ‍‍‍‍‍‍‍‍‍‍...,当滚动条滚动到某个位置的时候再次发送接口向后台再请求 n 条数据以此类推。...首先需要获取滚动条的位置,即可视区的高度和内容区域底部距离可视区页面顶部的距离,如果他们相等此时浏览器的滚动条当好滚动到页面底部,如果相差是负数说明浏览器的滚动条还没有到达页面底部。 ?...getView(container).height - el.getBoundingClientRect().bottom; } 通过addEventListener监听scroll事,如果getHeight()的值到达某个设定的值时...,我们就可以触发我们自己需求去调用接口等 优化页面 这里的想法是当我们的浏览器滚动条滚动之后,滚动上去的内容不显示在页面上,只显示可视区域的,减少页面的负载,先看一下效果 ?

    1.9K40

    GOOGLE 跟踪代码管理器101 PART 6 – 真实的跳出率

    相较于另一篇跳出率同样是70%的博文,内容质量却相差甚远。在这种情况下,你要如何来衡量访客对哪些内容阅读比例更高呢? 今天为大家介绍另一个Google Tag Manager的简单应用。...该网站单个页面的内容信息量都较大,而且不同页面之间的内容相互独立。访客通过点击链接可以到达他们想要的页面,但是几乎在所有的页面上都少有访客有更加深度访问的行为。 3....网站页面上的内容是为了促进品牌的推广,所以让访客认为网站提供的内容质量非常高,同时还会进行更加深度的访问,这一点对于网站运营来说是非常重要的。...我的这位客户现在就没办法了解来访客户从某个页面跳出时是到达该页面之后立刻跳出,还是在当前页面阅读了一段时间之后才跳出。...注意——如果用户在页面上浏览时间超过5分钟,他们可能真的被页面内容所吸引,或者还有可能是因为他们已经离开了当前标签页,转向浏览其他页面,但是并未关闭当前页面。

    1.4K40

    深入探寻Engagement奥秘 - 6个核心指标

    设备:用户是在电脑还是移动设备上阅读你的内容呢?了解用户如何消费你的内容将有助于优化和格式化你的内容设计体验。 另一个值得关注的指标是社会份额(social shares)。...例如,一个页面包含视频,直到用户点击“播放”后,会话持续时间才会被跟踪,否则页面上的时间将不会被计入总会话持续时间。...此外,即使窗口或选项卡处于非活动状态,页面停留时间也被记录着。这意味它是该页面未跳出用户的页面停留时间的平均值。 许多市场营销人员更喜欢在页面上监测滚动深度。它可以为内容提供更准确的参与度量标准。...越多的人滚动浏览内容,参与度可能性越高。 然而事实上,这两个指标我们都应该去衡量。 单独滚动深度可能会引起误解,因为许多用户会在决定是否继续阅读之前就滚动页面。...3 转化率:在登录页上点击并完成操作的人数与总收件人数的百分比。 4 转发/分享率:转发你的电子邮件或点击“分享”的人数与总收件人数的百分比。 转化率尤为重要。

    2.1K90

    React 查询:无限滚动

    介绍可能你已经在每个社交媒体平台上看到了这个功能,比如 Twitter、Facebook、LinkedIn 等。在这些平台上,我们不再使用传统的分页,而是通过无限滚动来加载数据。...没有上一页或下一页的按钮,数据会根据需要自动生成。但在底层,无限滚动仍然是分页的一种形式。下面让我们看看代码吧!...上手JSON Placeholder 页面## 首先,在我们的项目中创建 Todos 组件的文件夹:src/Todo/index.tsx。...观察者,顾名思义,将观察某个对象的状态。如果依赖项更新,正在监听(观察)的对象将被通知。...让我们将箭头函数的参数new IntersectionObserver()传递给它。entries现在我们将验证页面是否相交、是否有下一页并且未获取。

    16500

    这几个CSS小技巧,你知道吗?

    掌握常用的CSS属性不仅可以使你的网页看起来更美观,还能提升用户体验,今天小编为大家介绍8个常见的CSS小技巧: 1.修改滚动条样式 下图是我们常见的滚动条,现在需要改变滚动条的宽度和颜色了,并把它画的圆一点...) 2.修改光标停留在页面上的样式 一般情况下鼠标的样式是一个箭头,改变鼠标光标的样式为其他类型: /*类为first的元素,设置鼠标为不可用状态 。...(改变之后的光标) 3.保持组件的纵横比大小 在构建响应式组件的时候,组件的高度与宽度的不协调经常会导致视频和图像会出现拉伸的情况,影响读者的观感,因此我们需要设置组件的纵横比属性: .example{...(显示效果) 4.页面平滑的滚动 通过代码实现平滑地从一个页面跳转到另一个页面: 某个属性 使用@Supports检查 CSS 是否支持特定属性。

    20020

    微信 H5 页面兼容性解决方案

    最近给公司微信公众号,写了微信h5业务页面,总结分享一下前端开发过程中的几个兼容性坑,项目直接拿的公司页面,所以下文涉及图片都模糊处理了。...28px; //line-height: 88px; padding-top: 20px; padding-bottom: 20px; } } 2、ios端微信h5页面上下滑动时卡顿...但如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动 5、Vue中路由使用hash模式,开发微信H5页面分享时在安卓上设置分享成功,但是ios的分享异常 问题详情描述: ios当前页面分享给好友,...$router.push跳转,为window.location.href去跳转,而不使用路由跳转,这样可以使地址栏的地址与当前页的地址一样,可以分享成功(适合分享的页面不多的情况下,作为一个单单页运用,...最后: 微信H5页面其实很多知识,登陆授权,jssdk授权,这里就只做了分享,当然还有上传图片、微信支付等功能,都可能会遇到坑,以上几个坑也是比较常遇到的,如果有更好的解决方案的话,欢迎在留言区分享 作者

    3.3K30

    【H5】344- 微信 H5 页面兼容性解决方案

    28px; //line-height: 88px; padding-top: 20px; padding-bottom: 20px; } } 2、ios端微信h5页面上下滑动时卡顿...弹出的软键盘占位 失去焦点的时候软键盘消失 但是还是占位的 导致input框不能再次输入 在失去焦点的时候给一个事件 解决办法: div class="list-warp"> div class...但如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动 5、Vue中路由使用hash模式,开发微信H5页面分享时在安卓上设置分享成功,但是ios的分享异常 问题详情描述: ios当前页面分享给好友...$router.push跳转,为window.location.href去跳转,而不使用路由跳转,这样可以使地址栏的地址与当前页的地址一样,可以分享成功(适合分享的页面不多的情况下,作为一个单单页运用,...最后: 微信H5页面其实很多知识,登陆授权,jssdk授权,这里就只做了分享,当然还有上传图片、微信支付等功能,都可能会遇到坑,以上几个坑也是比较常遇到的,如果有更好的解决方案的话,欢迎在留言区分享

    2.7K30

    Scroll,你玩明白了嘛?

    今天主要聊一下关于 scroll 的应用: CSS 平滑滚动 JS 滚动方法 区分人为滚动和脚本滚动 2、CSS 平滑滚动 2.1 一行样式改善体验 在一些滚动交互比较频繁的场景,我们可以通过在可滚动容器上增加一行样式来改善用户体验... div> div> 同时,为了实现平滑滚动,我们在滚动容器上设置了如下的 CSS: .scroll-ctn {  display: block;  width: 100%;  height...而且相较于其他的方法,一般不会出什么幺蛾子(后文会讲到)。 3.2 应用 自己以往需要用到滚动的场景有: 组件初始化,定位到目标位置 点击当前页靠底部的某个元素,触发滚动翻页 .........这个问题常常发生在哪些情况下呢? 1、页面有 iframe 的情况下,比如说这个例子。 表现是当 iframe 内的内容发生滚动时,主页面也发生了滚动。...4.4 代码实现 首先看一下我们想要实现的 demo: 接下来先实现基本的页面结构。

    3.2K22

    微信H5页面兼容性解决方案

    ,总结分享一下前端开发过程中的几个兼容性坑,项目直接拿的公司页面,所以下文涉及图片都模糊处理了。...font-size: 28px; //line-height: 88px; padding-top: 20px; padding-bottom: 20px; }} 2、ios端微信h5页面上下滑动时卡顿...弹出的软键盘占位 失去焦点的时候软键盘消失 但是还是占位的 导致input框不能再次输入 在失去焦点的时候给一个事件 解决办法: div class="list-warp"> div class...但如果该元素已经在浏览器窗口的可见区域内,则不会发生滚动 5、Vue中路由使用hash模式,开发微信H5页面分享时在安卓上设置分享成功,但是ios的分享异常 问题详情描述: ios当前页面分享给好友,点击进来是正常...$router.push跳转,为window.location.href去跳转,而不使用路由跳转,这样可以使地址栏的地址与当前页的地址一样,可以分享成功(适合分享的页面不多的情况下,作为一个单单页运用,

    3.5K43

    js中的事件(event)

    比如说:他可以感觉到用户是否点击(click)了页面、鼠标是否进入了页面的某个元素上面(mouseover或mouseenter)、鼠标是否离开了网页(mouseout或mouseleave)、浏览器是都加载完了页面上的资源...(window.onload)、文档树是否生成(DOMContentLoaded)、键盘上的某个键是否按下(keydown)、鼠标的滚轮是否滚动了等等。  ...当然我们也可以不给事件绑定处理方法,也就是说当此事件发生的时候,什么也不需要做,事件常有,而事件上绑定的方法不一定有, 我们给页面中的元素的某个事件绑定处理方法的时候。...;当你在一个form表单里点击提交按钮时网页会产生一个行为病刷新网页,当你网页上滚动鼠标滚轮的时候,页面的滚动条会滚动等等;这些都叫事件的默认行为,如果想把这些默认行为取消了,相应的js代码如下: a.onclick...需求:在如下的HTML代码中,当你点击这个页面中的一个元素时,弹出这个元素对应的标签名; div id='outer'> outer div id = 'inner'> inner <

    6.9K30

    你可能不知道,前端这6个有用的技术可以这么酷!

    该段落在页面上是不可见的,它对HTML是隐藏的。 不过,这个技巧对伪元素不起作用。 2. 迅速定位 熟悉 inset` CSS 属性吗?...例如,我在我家里Chrome浏览器控制台跑一下navigator.connection.downlink这段语句,结果返回的是10, 表示下载带宽是10M的。...使用该案例包括禁用移动设备上的“拉动到刷新”功能,消除过度滚动发光和橡皮筋效果,并防止页面内容在模态/叠加层下滚动 body { overscroll-behavior-y: contain; } 这个属性对于组织模态窗口内的滚动也非常有用...--它可以防止主页面在到达边界时拦截滚动。...禁止插入文字 当用户在浏览器用户界面发起“粘贴”操作时,会触发paste事件。 有时间,我想禁止用户从某个地方复制的文本粘贴到输入框中。

    70040

    jQuery Mobile的学习 jQuery Mobile工具栏、标题栏、页脚栏的定位学习

    程序员都很赖,你懂的! 最近在做html5页面的开发,主要做智能终端设备的开发。对于内容比较少的页面,领导提出了要将页眉和页脚定位到网页的最上方和最下方。...对于这样的要求,其实一点也不过分。但对于新手来说,确实很难,很不容易,今天我就将我学习的内容一起分享一下! 放置页眉和页脚的方式有三种:     Inline - 默认。...页眉和页脚与页面内容位于行内。     Fixed - 页面和页脚会留在页面顶部和底部。    ...div data-role="content"> 提示:如果要看到效果,则需要调整窗口大小使滚动条可用。... 提示:如果滚动条可用,那么敲击屏幕将隐藏或显示页眉/页脚。效果会根据您在页面上的位置而变化。

    1.8K50

    如何实现高性能的在线 PDF 预览

    重新整理一下产品的需求: 页面上查看服务器上的 pdf 文件 支持页码跳转、旋转、缩放 打开要快 基本上前两条上述方案都能满足,所以我们需要解决的关键问题在于如何让用户快速打开内容,减少等待时间。...比如某个 PDF 有 200 页,我们按照 5 页一片,将它切分成 40 片,每次只下载用户看到的那一个分片。然后在用户进行滚动翻页的时候,异步的去下载对应包含对应页的分片。...pdfContainer.scrollTop; const height = pdfContainer.height; // 根据内容可视区域中心点计算页码, 没有滚动时,指向第一页 const...随着用户的滚动浏览,它会一直渲染,如果最终同时将 1000 个页面的 dom 全部放到页面上。那么内存占用将会非常多,导致页面卡顿。因此,为了减少内存占用,我们可以将当前可视范围之外的页面元素清除。...但是这样做用户体验会有所影响,因为用户看到的页面内容大小可能和他实际上传的不一样。 可以在服务器上提前计算好每一页的页面大小,返回给前端。前端在渲染指定页时,根据服务器返回的数据进行来计算页面位置。

    6.7K53

    利用交叉观察者这个小宝贝儿,轻松实现懒加载、吸顶、触底

    可以先看一下MDN中的介绍: IntersectionObserver接口,提供了一种异步观察目标元素与其祖先元素或顶级文档视窗(viewport)交叉状态的方法,祖先元素与视窗(viewport)被称为根...30px",那么元素未到达视窗时,就已经切换为可见状态了: ?...假设页面上有一个class="box"的盒子且父元素为视窗 let box = document.querySelector(".box"); let observer = new IntersectionObserver...假设页面上有多个class="box"的盒子且父元素为视窗: let box = document.querySelectorAll(".box"); let observer = new IntersectionObserver...该方法还有一个好处,那就是当页面上某个节点存在横向滚动条的时候,一样应对自如: ?

    63920

    Python带你薅羊毛:手把手教你揪出最优惠航班信息

    我曾经用它安排过两次假期旅行,还搜索过一些回我老家的短途航班信息。 如果你想要弄得专业一点,你可以把这个程序放在服务器上(一个简单的树莓派就够了),让它每天运行上一两次。...在选过几次“哪个是红绿灯,哪个是人行道和自行车”,点过几次“我不是机器人”之后,我觉得还是 Kayak 比较友好一点——虽然如果你在短时间内同时读取太多页面的话,它也会给你弹一些安全检查什么的。...选择你的出发和到达城市,以及出发日期。在选择日期的时候,记得选上“± 3 天”的选项。我写代码的时候是按这个选项来调试的,所以如果只想搜索某个指定日期的话,需要对代码进行一些调整。...我们的目标是,在一页里尽可能多地获取航班信息,同时又不触发验证码检查。所以,我的做法是,在一页内容载入进来之后,点一下(就一下!)页面上的「加载更多结果」按钮。...如果你的搜索不含有弹性日期的话,就不会有一个对照表对象出现在页面上,那么你的这段代码就可能会出问题。 我使用 Outlook 帐户(hotmail.com)进行了一下电子邮件发送测试。

    1.3K20
    领券