一个简单的图片懒加载

所谓懒加载,是为了提高网页的打开的速度,获得更好用户体验的一种手段。其选择的重要的部分先加载,次要的部分需要的时候再加载。比如一个电商网站,首屏通常有很多的数据,清晰度较高的 banner 或轮播。页面非首屏部分会员很多商品夹杂着大量的图片。这是时候选择懒加载以保证首屏的流畅十分重要。

本文仅仅简单的举例图片的懒加载,是性能优化的入门的篇章,方法比较简单明了,只要有一点 js 基础就一定能看懂。

废话不多说

<img src="img/pic_error.jpg" class="img-delay" data-src="img/banner.png" />

首先,对于非首屏的图片添加了 class=”img-delay” 和 data-src属性,后者用来放置图片原始 url 地址的属性,对于图片本身的 src 属性,可以选择空着,或者添加一个”图片无法显示“的提示性图片,像天猫这样:

之后我们需要做的就是,当用户下滑到哪里就显示哪里的图片(提前一点点显示更好,这里不做提前了)

//首先你需要引入一个 jQuery 库//获取需要延迟加载的图片
var $picDelay = $(".img-delay");//在 window 上监听滑动事件
$(window).scroll(function(){var scrollTop = $(window).scrollTop();    //滑块划过的距离var screenHeight = screen.height;     //屏幕浏览器内容部分的高度//计算每个图片的位置是否符合要求$picDelay.each(function(idx, ele){var $ele = $(ele);//当scrollTop + screenHeight === ele.offsetTop时图片刚好出现上边沿if(scrollTop + screenHeight >= ele.offsetTop){$ele.attr("src", $ele.attr("data-src")).removeAttr('data-src').removeClass("img-delay");}});//当所有图片都加载了以后,移除这个事件if($(".img-delay").length <= 0){$(window).unbind("scroll");}
});

一个简单的图片懒加载相关推荐

  1. vue-lazyload图片懒加载的简单使用

    一.vue lazyload插件: 插件地址:https://github.com/hilongjw/vue-lazyload demo:http://hilongjw.github.io/vue-l ...

  2. “懒”的妙用——浅析图片懒加载技术

    1.定义 图片懒加载是一种网页优化技术.图片作为一种网络资源,在被请求时也与普通静态资源一样,将占用网络资源,而一次性将整个页面的所有图片加载完,将大大增加页面的首屏加载时间.为了解决这种问题,通过前 ...

  3. 按需加载图片(图片懒加载)

    前言 按需要加载图片,这是一个非常实用的功能,不仅可以提高网站的性能,还可以为你节省流量.对于用虚拟主机的朋友来说,如果你的网站是一个图片网站或者图片比较多的网站,那么图片懒加载功能真不能少. 原理 ...

  4. 小程序之图片懒加载[完美方案,你不来看看?]

    效果图 既然来了,把妹子都给你. 定义 懒加载,前端人都知道的一种性能优化方式,简单的来说,只有当图片出现在浏览器的可视区域内时,才设置图片正真的路径,让图片显示出来.这就是图片懒加载. 实现原理 监 ...

  5. document引用图片的src属性能干嘛_如何实现图片懒加载

    背景 图片懒加载是针对图片加载时机的一种优化,在一些图片量比较大的网站(比如电商网站首页,或者团购网站.小游戏首页等),如果我们尝试在用户打开页面的时候,就把所有的图片资源加载完毕,那么很可能会造成白 ...

  6. 图片太多加载过慢?学学图片懒加载吧

    实验介绍 我们在浏览图片较多的网页时,有没有想过这些图片是如何成功展示的呢?比如像这样的图片素材网站: 这样的网页拥有成千上万的图片资源,如何优化网页性能成为了开发人员不得不思考的技术问题. 不难发现 ...

  7. WEB前端 实现图片懒加载 echo.js

    echo.js是一个轻小的图片懒加载js插件,在使用过程中很多朋友可能是直接自定义一张占位图片,可能会造成图片的变形等.其实这并不是最佳的解决方案.下面给大家介绍另一种方法,简单的控制下css,实现l ...

  8. vue 图片拖动加载 类似于地图_前端性能优化之图片懒加载(附vue自定义指令)...

    作者:lzg9527 链接:https://juejin.cn/post/6903774214780616718 在类电商类项目,往往存在大量的图片,如 banner 广告图,菜单导航图,美团等商家列 ...

  9. js实现审批流_小程序瀑布流组件:支持翻页与图片懒加载

    电商小程序中,用到瀑布流的地方非常多,每次都写一个瀑布流,重复一次逻辑,作为程序员,肯定是非常不愿意的. 瀑布流的形式都是大同小异,不同的是瀑布流中每个模块的内容,随业务而变化. 所以,我们把瀑布流框 ...

最新文章

  1. 如何提高企业竞争力,科学的组织架构是第一王牌
  2. webuploader 怎么在react中_React 项目性能分析及优化
  3. Altium Designer PCB快速布局
  4. MySQL数据库性能优化之一
  5. [HAOI2006]均分数据
  6. redis 数据结构
  7. 漫谈数据仓库之维度建模
  8. 计算机二级vb上机操作题库,2016计算机二级《VB》上机题题库(含答案)
  9. 2012,字王强势回归
  10. Python之字符串正则匹配
  11. 【构造】构造一个字符串满足k个子序列问题总结
  12. 广告投放媒体发展简史
  13. Leetcode 1484题: Group Sold Products By The Date
  14. 1000句英语经典口语 (1)
  15. 文字识别——检测部分 CTPN论文翻译
  16. 删除数组中的重复项(保留最后一次出现的重复元素并保证数组的原有顺序)
  17. 一个运维工程师必须要知道的(工作职责与应用场景)干货整理
  18. mongoDB图形可视化界面及操作
  19. Tal Ben-Shahar 积极心理学_课程小结
  20. linux桌面小程序开发日记3(pyqt5+yolov5)

热门文章

  1. 【Tools系列】xshell无法使用delete和backspace键该怎么办
  2. C语言编程之《让计算机开口说话》
  3. 联通对首款双3G手机补贴:286元套餐零元购机
  4. java python基于Vue宠物交流网站管理系统
  5. 前端全栈学习第十二天-js第三天-基础
  6. 关于游戏平衡性——王者荣耀野怪数值参考
  7. centos安装mysql5.7
  8. 多准则决策方法好文汇总,AHP,TOPSIS,EDA,RSR,模糊综合评价法
  9. 金蝶旗舰版打不开账套,提示所选账套无效,无法建立数据库连接
  10. 平衡记分卡_平衡产品记分卡