博主信息
博文 65
粉丝 2
评论 0
访问量 74951
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
大神杰作:让站点飞快!懒加载图片案例,噢 my gad!太快啦…
张福根一修品牌运营
原创
975人浏览过

作业:懒加载图片

案例效果:

懒加载图片

案例源码:

CSS:

  1. <style>
  2. .container {
  3. width: 600px;
  4. display: grid;
  5. gap: 10px;
  6. grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  7. }
  8. .container img {
  9. width: 100%;
  10. }
  11. </style>

HTML:

  1. <div class="container">
  2. <img src="images/temp.jpg" alt="" data-src="images/img-1.jpg" />
  3. <img src="images/temp.jpg" alt="" data-src="images/img-2.jpg" />
  4. <!-- 中间省略 -->
  5. <!-- 中间省略 -->
  6. <!-- 中间省略 -->
  7. <img src="images/temp.jpg" alt="" data-src="images/img-67.jpg" />
  8. <img src="images/temp.jpg" alt="" data-src="images/img-68.jpg" />
  9. <img src="images/temp.jpg" alt="" data-src="images/img-69.jpg" />
  10. <img src="images/temp.jpg" alt="" data-src="images/img-70.jpg" />
  11. </div>

JS:

  1. <script>
  2. // 1 获取图片
  3. const imgs = document.querySelectorAll(".container img");
  4. // 2. 视口高度
  5. const clientHeight = document.documentElement.clientHeight;
  6. // 3. 监听窗口滚动事件
  7. window.addEventListener("scroll", lazyload, false);
  8. // load: 当页面加载成功时自动执行,将已进入可视区的图片显示出来,不要出现首页空白
  9. window.addEventListener("load", lazyload, false);
  10. // 4. 懒加载的回调
  11. function lazyload() {
  12. // 动态获取滚动高度
  13. let scrollTop = document.documentElement.scrollTop;
  14. // 遍历图片,判断是否进入到可视区域
  15. imgs.forEach((img) => {
  16. // offsetTop: 是图片距离顶部的高度,包括了视口高度和滚动高度的
  17. if (img.offsetTop <= clientHeight + scrollTop) {
  18. img.src = img.dataset.src;
  19. // 如果感觉图片显示太快,可以用定时器来控制一下
  20. setTimeout(() => {
  21. img.src = img.dataset.src;
  22. }, 500);
  23. }
  24. });
  25. }
  26. </script>
批改老师:天蓬老师天蓬老师

批改状态:合格

老师批语:没想过换一些图片吗? 找一些图片应该不难吧
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学