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

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

更不用说向屏幕阅读器适时告知新加载项目的可访问性问题以及断断续续连接上性能问题。 上面列出所有问题都表示可用性差。因此,无怪乎我们经常将无限滚动视为一种制造更多问题而不是提供解决方案时尚技术。...毫无疑问,作为设计师,我们倾向于其他选择:分页“加载更多”按钮。 分页“加载更多” 我们可以通过使用分页,来避免无限滚动所产生问题。...现在,所有这些似乎都是为了让无限滚动更好。所有工作是否值得最终问题必须由您用户应该实现目标来回答。无限滚动并不适合每个网站,无穷无尽选项列表需要通过适当过滤、排序搜索来补充。...不过,如果您用户经常探索许多选项,并且浏览是您网站上非常典型属性,尤其是当客户在购物车中添加多个商品或一次操作大量数据条目时,无限滚动可能非常有用——但前提是可访问性性能考虑,这才是其设计核心。...考虑使用滚动条范围间隔。 考虑允许用户对感兴趣领域标记或加入书签。 确保可访问性性能是实现过程中主要考虑因素。

3.1K20

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

在一次调试过程中,我按下了F12刚好是掘金页面,然后把代码输入到控制台之后,顺手滚动了几下右侧滚动条,发现个问题如下图所示: ? ‍‍‍‍‍‍‍‍‍‍...掘金官网滚动条当你拖动到底部时候会自动回弹到一定位置。顺着这个问题,我想着使用 vue-cli3.0 TS 实现以下这个功能。...首先需要获取滚动位置,即可视区高度内容区域底部距离可视区页面顶部距离,如果他们相等此时浏览器滚动条当好滚动到页面底部,如果相差是负数说明浏览器滚动条还没有到达页面底部。 ?...当滚动滚动回去效果: ? 思路:通过监听内容区上部超出可视区域高度设置每一个目录高度比值计算出超出条数,判断渲染数据下标条数大小来展示。...其实无限滚动也简单,就是能不能想到这个点子上,如果想不到那肯定就是天方夜谭了,这里面也有很多不足地方需要改进,欢迎留言探讨指点,毕竟这里水很深,不小心鞋就湿了。

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

让Typecho无限滚动加载方法

据统计,据媒体报道,据各种经验之谈:用户不喜欢点击,更爱滚动!所以,之前挺流行文章分页没有了,沿用了几百年“下一页”也被无限load取代。瀑布流Twitter更是推动了无限load普及。...这里介绍一个jQuery插件:Infinite AJAX Scroll,通过这个插件能快速实现无限滚动翻页。因为是jQuery所以到处都能用,这里我们以Typecho作为例子。...IASNoneLeftExtension({text: "已经没有文章了"})); //到底后显示文字 我们需要把容器对应idclass填上, item指的是循环列表容器...,就是列表中文章最外层divid或者class container是整个大容器,就是包裹文章列表divid或者class pagination是分页所在容器,就是包裹分页按钮divid或者...ias.on('rendered', function(items) { //你重载函数 }) 常见惰性加载需要重载函数 Lazyload $("img.lazy

1.6K20

Vue组件滚动加载、懒加载功能实现,无限滚动加载组件实例演示

效果图如下: 可以看到随着不断滚动,页面组件数量不断加载。 其实加载是后端返回数据,因为涉及隐私,没有给显示出来。 利用懒加载,可以防止大量渲染造成卡顿降低用户体验。...页面的动态加载这块可以看上一篇文章: Vue 动态添加删除组件实现,子组件父组件传值实例演示 下面主要讲一下动态加载实现思路: 首先懒加载主要有两种形式,一种是不断从后端请求返回前端,每次获取一部分数据...当滚动距离 + 可视区高度 >= 滚动条长度时,就相当于滚动到了底部。...var scrollHeight = document.documentElement.scrollHeight // 当滚动距离+可视区高度>=滚动条长度时,...= document.documentElement.scrollHeight // 当滚动距离+可视区高度>=滚动条长度时,就相当于滚动到了底部 if (scrollTop

3K40

viewpager循环滚动自动轮播问题

ViewPager是一个常用android组件,不过通常我们使用ViewPager时候不能实现左右无限循环滑动,在滑到边界时候会看到一个不能翻页动画,可能影响用户体验。...但是,简单求模会出现问题:考虑用户向左滑情形,则position可能会出现负值。所以我们需要对负值再处理一次,使其落在正确区间内。...* 例如当前如果在第一页,本来准备播放是第二页,而这时候用户滑动到了末页,          * 则应该播放是第一页,如果继续按照原来第二页播放,则逻辑上有问题。          ...,这主要是避免在复杂环境下消息出现重复等问题。...,主要是加载View对ViewPager进行初始化设置。

3.2K60

一个快速 Vue3 无限滚动组件

,那么,你所在网站很可能正在使用无限滚动组件。...无限滚动组件是在用户向下滚动页面时加载新内容,而不是将其分成多个页面。 它们对于特定类型内容(例如用户生成内容)非常有效。 以下是无限滚动示例。...在今天教程中,我们将使用 Composition API 创建一个 Vue3 无限滚动组件。这是我们将在它结束时构建内容预览。 如你所见,它是无限滚动,屏幕右侧滚动条反映了这一点。...无限滚动优点: 用户参与内容发现 滚动比点击更好(更好可用性) 滚动适用于移动设备 无限滚动缺点: 页面性能设备资源 项目搜索位置 - 用户无法为页面添加书签并保留位置 不相关滚动条 就像所有与...当我们向下滚动到当前内容底部时,应该会自动加载新内容。让我们看看我们有什么。 无限滚动组件可能扩展 这只是创建Vue3无限滚动组件介绍。有很多不同方向可以改进它。

2.1K20

一款支持百万量级无限滚动组件

无限滚动就是解决这种场景更好技术手段 而今天就是给大家分享一款可以承受百万量级数据无限滚动组件vue3-infinite-list vue3-infinite-list vue3-infinite-list...是一个针对vue3短小精悍无限滚动组件,它体积非常小、零依赖gzip只有 3kb。...--save 或者 yarn yarn add vue3-infinite-list 使用 在应用模块内引入无限滚动组件 import InfiniteList from 'vue3-infinite-list...'; 用无限滚动组件标签包裹待滚动数据列表 <InfiniteList :data="data" :width="'100%'" :height="500" :itemSize...(默认) 设置滚动方向为水平方向 动态控制滚动高度(每一项item高度值是变化滚动到指定元素位置(可以设置对齐方式) 支持动态变更数据 设置额外渲染元素数量 github: https://github.com

44920

一款用于 Vue.js 无限滚动插件

本文由 #公众号:一个正经程序员 原创 作者:散淡样子 GitHub:https://github.com/LouisLiu00 00 前言 Web 项目经常会用到下拉滚动加载数据功能,今天就来种草一款...(文末附链接) 开箱即用: 简洁至上 API、内置加载动画以及良好兼容性,可立即投入生产 双向支持: 目前支持向上向下两种加载方式,可适应于更多应用场景 结果展示: 可配置加载结果展示,比如没有更多数据...基本用法                         ...--infinite-loading这个组件要放在列表底部,滚动盒子里面!...state给事件处理器来改变加载状态, loaded方法用于在每次加载数据后停止播放动画,然后该组件将准备好进行下一次触发; complete方法用于完成完整无限加载,则该组件将不再处理任何滚动操作。

37720

vue里监听页面滚动问题

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

3.3K40

EasyDSS视频直播列表页面横向滚动纵向滚动条不能同步问题优化

目前我们官网EasyDSS最新测试版本为3.3.0,而现在新版4.0.0已经在测试当中了,测试期间会将一些存在问题进行修复,同时对体验不太好地方进行优化。...EasyDSS4.0.0版本在视频直播列表当中插入了横向纵向滚动条,但是测试期间发现两个滚动频率难以同步,需要把纵向滚动条拖到底部才能拖动横向滚动条,修改数据后数据会在表格顶部,操作时候需要来回拖动...通过对前端代码检查,我们得知出现问题原因是当前表格未设置高度,纵向滚动条是父级盒子设置,需要给表格设置高度才能显示纵向滚动条。...因此我们要给表格添加最大高度 :max-height="tableHeight" 在页面加载前获取当前窗口高度减去顶部导航页脚并赋值 this.tableHeight = document.documentElement.clientHeight...400 解决效果如下,表格高度随窗口高度变化而变化: EasyDSS互联网视频云服务支持HTTP、HLS、RTMP等播放协议,可面向Windows、Android、iOS、Mac等终端提供稳定流畅直播

2.8K20

经典vue难点----v-forkeydiff算法

引言 今天学习了v-forkeydiff算法之间关系,了解了vue是如何高效渲染DOM。...v-forkey 官方解释 key属性主要用在Vue虚拟DOM算法,在新旧nodes对比时辨识VNodes 如果不使用key,Vue会使用一种最大限度减少动态元素并且尽可能尝试就地修改/复用相同类型元素算法...Vue事实上会对于有key没有key会调用两个不同方法 有key,那么就使用 patchKeyedChildren方法 没有key,那么久使用 patchUnkeyedChildren方法 上源码...Vue源码对于key判断 没有key操作(源码) 没有key操作会分为三步 先获取新旧节点长度并且去最小长度 遍历长度小节点,对新旧节点依次patch(容易理解点就是对比节点类型内容...v-for中key值作用解释,是不是就恍然大悟了!!!

87630

文档元素几何滚动

文档元素几何滚动 当浏览器在窗口中渲染文档时,它将会创建文档一个视觉表现层,在哪里每个元素都有自己位置尺寸。通常web应用程序将文档看做元素树。...文档包含滚动内容,而窗口仅仅是当前用户所看到内容。 文档坐标在用户滚动时候不会发生改变。...并且返回不是实时,属于一个快照 滚动 设置一个垂直滚动 // 获得文档窗口高度 var documentHeight = document.documentElement.offsetHeight..."]'); 使用document.forms来进行选择表单,返回是一个类数组 document.forms 对于表单使用elements获取其表单name一些属性值,因为有些时候会出现重叠问题。...this问题 this是触发该事件文档元素一个引用。即触发该事件对象 在form元素中元素拥有一个form引用了其父级form。通过this.form会得到form对象引用。

5.2K00

无限游戏:虎牙野心底牌

2018年是直播行业分水岭,“百播大战”结束,直播市场正在向头部集中,特别是游戏直播市场,这个现象更明显。种种迹象表明,上市后虎牙直播,已成为直播行业典型无限游戏玩家。 什么是“无限游戏”?...潘乱《王兴无限游戏》一文,让这个概念在科技财经媒体圈流行: “有限游戏以取胜为目的,而无限游戏以延续游戏为目的。有限游戏在边界内玩,无限游戏却是在边界,也就是规则玩,探索改变边界本身。” ?...虎牙直播行业老大地位不断强化,让它具备了玩无限游戏条件。 无限游戏玩家战场 虎牙IPO后关注点不再是对手,而是如何扩宽游戏直播行业以及自己边界。...总的来说,虎牙直播已不再局限于游戏直播市场本身争夺,而是在突破游戏直播边界,进入无限游戏模式,其增长空间也将不止于游戏直播市场,而是有望抓住电竞体育化游戏全球化这两个战略机遇,实现更大增长,说白了...正是因为决策层有眼光,所以虎牙才会不再玩儿“有限游戏”,而是进入“无限游戏”模式,专注策略兄弟支持,将会帮助它走得更远,不断突破边界,实现持续增长。

40130

js - 移动端超出滚动功能,附带滚动条,可解决弹层中滚动穿透问题

背景: 弹层里边有可滚动区域时,在移动端坑我就不多说了。 找了很多解决滚动穿透方案,最终都不能完美解决。 一气之下自己js撸了一个。 效果图: ?...原理: 1、解决滚动穿透:通过给弹层绑定touchmovemousewheel事件,取消默认行为实现。...2、取消默认行为后不能滚动:给需要滚动展示区域绑定touchstart、touchmovemousewheel事件,监听触发区域Y值,对应修改可滚动区域translateY值,实现滚动效果。...} 47 $(this).css('transform', `translate(0px, ${transY}px)`); 48 /* 移动时,滚轮变化监听...let y = e.originalEvent.deltaY; 70 if (y > 0) { 71 /* 向下翻滚轮 wheelDeltaY值与之相反

7.2K10
领券