原本是打算昨天昨天下午的时候就写一篇关于前端图片延迟加载的详细技术的博客的,没想到下午公司项目出现了一些问题,所以一直在改代码进行调试,今天白天一整天又在外面跑,回来已经傍晚了,刚吃完饭,就想着赶紧补上,这样很多不懂这方面具体实现的小伙伴们也能早点学习经验。
前端页面的用户体验对于一个网站来说是至关重要的,我们在访问一些图片量比较大的网站的时候,往往会有这样的感受:显示在我电脑屏幕可视区域的图片总是不能及时的刷出来,这就造成了对于一些没有什么耐心的用户而言,他们就不愿意多等下去,索性直接关闭了网站去看其他的网站,这就使得本网站的用户量的流失,这往往是一个网站最不愿意看到的情况,那么对于这样的情况而言,开发者们不断的努力,很快就想到了解决的方案,让在可视区域的图片立即加载进来,而让不在可视区域并且需要通过滚动条进行滚动显示的图片在图片滚动到可视区域内再显示出来,这就比一次性把所有的图片资源加载进来从而造成图片刷新较慢的用户体验好的多的多。
那么,图片延迟加载的技术具体如何实现呢?下面来做详细的介绍:
首先,定义图片为三列,一共有5行,具体代码如下:
里面用到的bootstrap的布局技术(当然,这不是重点),请看img标签中的src,一开始我们并没有给它具体的图片的资源路径,而是自己定义了一个属性 x-src,该属性的值是图片图片的资源路径,每一行的img都是如此,接下来,当页面载入的时候,我们使用jquery(当然,你想javascript原生的代码也可以,我这里只是为了省时间而已)来循环遍历每一个img,判断每一个图片是否在当前可视区域内,是则显示图片,否则稍后处理,这里需要知道三个数据:
注:因为我所写的是当图片的一半进入的浏览器的可视区域内才将这张图片进行加载,所以需要第三个数据,这个看个人的需求是什么, 如果你的需求是图片只要已进入可视区域内就加载,可直接忽略第三个数据!!!!
1:浏览器可视区域的高度
2:图片相对于文档的偏移量(这里只需要高度上的偏移量)
3:图片元素本身的高度
如果图片先对于文档的偏移量+图片元素本身的高度的一半 < 浏览器可视区域的高度,即表明图片已经有一半进入的可视区域了,那么我就应该要把这张图片加载进来了,可是img标签的src是为空的,x-src的值才是图片的资源路径,这个时候就需要用jquery将img 标签的x-src值传给src,从而将图片加载进来,具体实现代码如下:
具体的效果如下:
你可以在控制台看到,虽然我们有5行图片,每行有3列,但加载进来的图片只有第一列(图片高度有超出一半的img才会加载图片的资源进来),其他的都没有加载进来,这就使得图片的刷新会很快出现效果,那么接下来,用户需要看到更多的图片,这个时候需要进行滚动条往下滚动,去刷新更多的图片,那么这个时候我们除了上述的3个数据之外,还需要知道当前滚动条滚动的距离
演示DEMO:
无限滚动加载数据
在控制台你可以看到,随着滚动条的滚动,加载进来的图片由原来的三张变成了现在的六张,滚动条不断的往下滚动,图片就会不断的加载进来,从而得到更好的用户体验。
分享到:
相关推荐
在H5页面开发中,下拉刷新和上拉加载是常见的功能,...综上所述,H5下拉刷新上拉加载滚动条位置的处理是提升Web应用用户体验的关键一环。通过合理的技术实现和优化策略,我们可以为用户提供更加流畅、自然的浏览体验。
"uni-app 社交 下拉加载历史消息记录,滚动到下拉之前,不闪"这个主题关注的是如何在移动应用中实现平滑的下拉加载功能,同时避免页面在加载新内容时出现闪烁现象,确保用户在查看聊天历史时能有流畅的交互体验。...
Parsley框架还可能提供了错误处理和性能优化的功能,比如延迟加载、预加载策略等。 为了实现这样的功能,开发者需要了解HTML5的`<link>`或`<style>`标签,以及如何在CSS中使用@font-face规则。此外,对于Parsley...
实现上拉加载和下拉刷新通常涉及以下步骤: - 监听滚动事件:通过JavaScript监听页面滚动,计算滚动距离或百分比。 - 触发加载:当达到预设的触发点(如距离底部一定像素或滚动百分比)时,发送Ajax请求加载更多...
- **延迟加载(Lazy Loading)**:为了进一步优化性能,可以采用延迟加载策略,即只有当内容进入可视区域时才加载,这在图片或视频较多的场景尤其适用。 - **用户体验**:设计时需考虑用户体验,例如设置清晰的加载...
在移动设备上,为了提供更好的用户体验,许多应用和网页都采用了“手机页面下拉、上拉加载更多内容”的设计模式。这种技术通常被称为无限滚动或滚动加载,它允许用户通过简单地滚动屏幕来查看更多的信息,而无需点击...
图片懒加载是一种优化网页性能的技术,它通过延迟加载非视口内的图片,直到用户滚动到它们将要出现在屏幕上的位置时才开始加载。这一策略在现代网页设计中被广泛采用,因为它可以显著减少页面初始化时的数据量,提高...
3. **框架集成**:React、Vue、Angular等前端框架也提供了生命周期钩子或组件,用于监听滚动事件并实现下拉加载功能。 三、优化策略 1. **分页**:服务器端进行分页处理,每次只返回一定数量的数据,减少一次性加载...
"手机下拉加载特效jquery+php特效" 提供了一种交互式的解决方案,它结合了前端JavaScript库jQuery与后端PHP语言,实现了"无限滚动"或"下拉刷新"的效果。这种效果通常被称为"Pull to Refresh",用户只需在页面顶部向...
标题“下拉显示全部图片”通常指的是在网页或者应用程序中,通过用户向下滚动页面来逐渐加载和显示更多的图片。这种技术常用于节省页面加载时间,提高用户体验,特别是当页面包含大量图片时。它通常与无限滚动...
7. **延迟加载**(ListLazyLoad):考虑到用户体验,我们可以采用延迟加载技术,即图片或数据只有在进入视口时才开始加载。这样可以减少初始页面加载时间,提升页面性能。 综上所述,实现模仿新浪微博的下拉加载更...
7. **延迟加载**:为减少首次加载时的数据量和提高加载速度,可以采用懒加载策略,即在用户滚动到可视区域附近时才加载对应的数据。 8. **图片加载库**:为了高效地加载和显示图片,通常会引入图片加载库,如Glide...
当用户滚动到这些占位符图片所在位置时,延迟加载脚本会触发,将占位符图片替换为真实的图片,并且通常伴随着淡入等视觉效果,使加载过程对用户更加友好。 具体到jquery lazyloader插件的使用,插件的引入方法非常...
在现代Web应用中,为了提供类似原生态移动应用的流畅体验,开发人员常常会使用上拉刷新(Pull-to-Refresh)和下拉加载更多(Infinite Scroll)功能。这两个特性让用户能够轻松地获取新内容或者浏览更多的数据,而...
1. **延迟加载**:为了提高页面性能,可以使用懒加载策略,只有当元素进入可视区域时才加载其图片或其他资源。 2. **适应性设计**:确保布局在不同屏幕尺寸和设备上都能正常工作,这可能需要使用媒体查询或响应式...
- 延迟加载:设置一个阈值,当接近底部时才开始加载更多数据,避免频繁请求。 - 数据预加载:在用户滚动之前预测并加载即将进入可视区域的数据。 8. **错误处理与用户体验**: 在处理滚动加载时,应考虑网络延迟...
- 为了模拟异步加载,可以使用Promise来控制数据加载和页面渲染的顺序。 5. **优化与注意事项** - 为了避免初次加载或动态加载时的闪烁,可以设置一个初始高度,或者利用CSS动画过渡效果平滑显示图片。 - 为防止...
在现代Web开发中,为了提供更好的用户体验,下拉刷新(Pull-to-Refresh)和上拉加载更多(Infinite Scroll)已经成为移动应用和响应式网站的标准功能。这些特性允许用户通过简单的手势更新内容或加载更多数据,而...
- 延迟加载:如果下拉菜单内容庞大,可采用懒加载技术,只在需要时加载。 7. **测试与迭代**: - 用户反馈:收集用户反馈,不断优化下拉菜单的设计和功能。 - 测试工具:使用A/B测试或用户体验工具,评估不同...