批改状态:合格
老师批语:没想过换一些图片吗? 找一些图片应该不难吧
作业:懒加载图片

<style>.container {width: 600px;display: grid;gap: 10px;grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));}.container img {width: 100%;}</style>
<div class="container"><img src="images/temp.jpg" alt="" data-src="images/img-1.jpg" /><img src="images/temp.jpg" alt="" data-src="images/img-2.jpg" /><!-- 中间省略 --><!-- 中间省略 --><!-- 中间省略 --><img src="images/temp.jpg" alt="" data-src="images/img-67.jpg" /><img src="images/temp.jpg" alt="" data-src="images/img-68.jpg" /><img src="images/temp.jpg" alt="" data-src="images/img-69.jpg" /><img src="images/temp.jpg" alt="" data-src="images/img-70.jpg" /></div>
<script>// 1 获取图片const imgs = document.querySelectorAll(".container img");// 2. 视口高度const clientHeight = document.documentElement.clientHeight;// 3. 监听窗口滚动事件window.addEventListener("scroll", lazyload, false);// load: 当页面加载成功时自动执行,将已进入可视区的图片显示出来,不要出现首页空白window.addEventListener("load", lazyload, false);// 4. 懒加载的回调function lazyload() {// 动态获取滚动高度let scrollTop = document.documentElement.scrollTop;// 遍历图片,判断是否进入到可视区域imgs.forEach((img) => {// offsetTop: 是图片距离顶部的高度,包括了视口高度和滚动高度的if (img.offsetTop <= clientHeight + scrollTop) {img.src = img.dataset.src;// 如果感觉图片显示太快,可以用定时器来控制一下setTimeout(() => {img.src = img.dataset.src;}, 500);}});}</script>
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号