图片懒加载

爬取图片懒加载页面 文章目录1.什么是懒加载2.为什么要使用懒加载3.如何爬取图片懒加载的网站3.1 分析爬虫页面, 指定爬取流程3.2 编写爬虫的代码4.总结 在带大家爬取图片懒加载页面之前, 先为大家介绍一下什么是图片懒加载, 懒加载有什么用, 在理解原理后再去爬取, 相信就会简单多了。 1.什么是懒加载 在一些网站或者app上会看到 鼠标或手势过快,而图片没有加载出来由色块或其他图片代替的情况,当图片出现在我们... 阅读详情

图片懒加载

首先说一下懒加载的原理,我们知道浏览器在加载图片是通过src的地址进行访问的,如果加载图片数量少了还可以,如果是图片类型的网站,加载多个图片这无不是给浏览器请求增加了负担,所以我们通过用户浏览的情况来加载一定的数量,比如说,用户刚打开网页浏览时,看到的是整个浏览器窗口的大小,我们就先加载一定数量的图片信息,这样就给浏览器请求有了一定的缓解时间,当用户下拉页面时触发再次请求图片信息,这样缓解了浏览器的压力,还给用户一种在请求数据的体验。

原理

1.先写html,我们将src的请求地址给到空,这样刚开始是不会请求数据的,然后给img加上一个data-src属性,用来存放真实图片地址的信息,(data-src这个名字可以换成其他名字,这是自定义的名字)
2.js部分就是先获取到所有带有img标签图片集合
3.用window.onscroll来监听用户的行为,(混动滑轮)
4.滑动滑轮触发lazyloader函数
5.函数中对图片进行一个循环,判断每一张图片距离顶部的位置,(offsetTop),然后和屏幕高度加上滑动块儿距离顶部的高度(这边是为了算出滑动的高度+当前屏幕高度=当前位置距离顶部的位置高度)。
6.我们在外面定义了一个i = 0,为了防止,已经加载过了的图片再次重复进行循环判断

具体实现如下:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>图片懒加载</title>
		<style type="text/css">
			img {
				display: block;
				height: 200px;
			}
		</style>
	</head>
	<body>
		<div class="wrap">
			<img src="" alt="" data-src="./img/1.jpeg">
			<img src="" alt="" data-src="./img/2.jpeg">
			<img src="" alt="" data-src="./img/10.jpeg">
			<img src="" alt="" data-src="./img/11.jpeg">
			<img src="" alt="" data-src="./img/12.jpeg">
			<img src="" alt="" data-src="./img/13.jpeg">
			<img src="" alt="" data-src="./img/16.jpeg">
			<img src="" alt="" data-src="./img/18.jpeg">
			<img src="" alt="" data-src="./img/19.jpeg">
			<img src="" alt="" data-src="./img/20.jpeg">
			<img src="" alt="" data-src="./img/21.jpeg">
			<img src="" alt="" data-src="./img/22.jpeg">
			<img src="" alt="" data-src="./img/23.jpeg">
			<img src="" alt="" data-src="./img/24.jpeg">
			<img src="" alt="" data-src="./img/25.jpeg">
			<img src="" alt="" data-src="./img/26.jpeg">
			<img src="" alt="" data-src="./img/27.jpeg">
			<img src="" alt="" data-src="./img/28.jpeg">
			<img src="" alt="" data-src="./img/29.jpeg">
			<img src="" alt="" data-src="./img/30.jpeg">
			<img src="" alt="" data-src="./img/4.jpeg">
			<img src="" alt="" data-src="./img/5.jpeg">
			<img src="" alt="" data-src="./img/6.jpeg">
			<img src="" alt="" data-src="./img/7.jpeg">
			<img src="" alt="" data-src="./img/8.jpeg">
			<img src="" alt="" data-src="./img/9.jpeg">
			<img src="" alt="" data-src="./img/13.jpeg">
			<img src="" alt="" data-src="./img/15.jpeg">
			<img src="" alt="" data-src="./img/16.jpeg">
			<img src="" alt="" data-src="./img/20.jpeg">
		</div>
		<script type="text/javascript">
			//获取所有图片信息
			var imglength = document.getElementsByTagName("img");
			console.log(imglength);
			let n = 0;//为了防止已经加载过了的图片再次进行循环判断
			lazyloader();
			//注册窗口滚动事件
			window.onscroll = lazyloader;

			function lazyloader() {
				console.log("你滚动了窗口");
				//获取可见区域的高度(当前可视化窗口高度)
				var nowclientHeight = document.documentElement.clientHeight;
				console.log(nowclientHeight);
				//获取滚动条距离顶部的高度用scrollTop
				var scrolltop = document.body.scrollTop || document.documentElement.scrollTop;
				 console.log(scrolltop + nowclientHeight);
				for (let i = n; i < imglength.length; i++) {
					if (imglength[i].offsetTop < nowclientHeight + scrolltop) {
						if (imglength[i].getAttribute("src") == "") {
							imglength[i].src = imglength[i].getAttribute("data-src");
							console.log("当前n的值是" + n);
							n = i + 1;
						}
					}

				}
			}
		</script>
	</body>
</html>


React图片懒加载 React图片懒加载 话不多说了,创建一个LazyLoad.js的React组件,然后将下面的代码复制过去: import React from 'react' // import './lazyload.css' // threshold const threshold = [0.01] class LazyLoad extends React.Component{ construc... 阅读详情

相关推荐

图片的懒加载

图片懒加载也就是图片的延迟加载,实现图片的懒加载有两个思路: 1、事件监听 2、IntersectionObserver

qq_45265059的博客 3500

实现图片懒加载的5种方式

offsetTop(图像距离顶部的高度)-scrollTop(页面被卷去的高度)

maidu_xbd的博客 9763

ESP32蓝牙广播数据自定义指南:让你的设备更容易被手机发现

本文详细介绍了如何通过自定义ESP32蓝牙广播数据提升设备在手机端的可发现性。从广播数据结构、扫描响应优化到跨平台兼容性设置,提供了全面的技术指南和实战代码示例,帮助开发者解决智能硬件开发中的蓝牙连接难题。

weixin_29172201的博客 271

图片懒加载的四种实现方案

懒加载:延迟加载,对于一个很长的页面,优先加载可视区域的内容,其他部分等进入可视区域时再加载。

前端工程师 · Vue 生态深耕者,专注多端与工程化 9931

rbf神经网络python预测代码_RBF神经网络预测

%用RBF网络来预测股票走势clcclear%归一化数据input=[0 0 0 0 0 0.0277;0.0177 0.0292 0.0184 0.0122 0.0264 0.0492;0.0374 0.0946 0.0393 ...

weixin_39951419的博客 1889

从STM32转战华大HC32F4A0:我的踩坑实录与10个USART的灵活配置心得

本文分享了从STM32迁移至华大HC32F4A0的实战经验,重点解析了10个USART的灵活配置技巧及常见问题解决方案。通过对比STM32F407,详细介绍了HC32F4A0在外设灵活性、IO功能组设计及多串口应用中的优势,帮助开发者快速掌握国产芯片的开发要点。

weixin_30514745的博客 524

什么事图片懒加载?如何实现图片懒加载?

图片懒加载是指在网页中,当用户滚动页面时才加载图片的一种技术。相对于传统的图片加载方式,懒加载可以减少初始页面的加载时间,提高网站的响应速度。尤其对于移动设备和网络条件较差的用户,懒加载可以显著地提高用户的体验。

tyxjolin的专栏 3980

MIPI video mode 和 command mode 的区别

1、何为LCD RAM? LCD 是指字面意思是液晶显示屏(Liquid Crystal Display), 而RAM: 随机存取存储器(Random-Access Memory),两者完全是风马牛不相及的东西。 下图是一个标准的LCD的爆炸图(不含TP),请注意图中红色mark的地方:控制IC-- LCD的大脑。所谓的LCD RAM自然是指此大脑是否包含RAM. 题外话<不感兴趣的...

精诚所至 4690

图片懒加载的原理--三种方法实现

3.设置img的默认src为一张1px*1px,很小很小的gif透明图片(所有的img都用这一张,只会发送一次请求),之所以需要是透明的,是需要透出通过background设置的背景图(一张loading.png,就是一个转圈圈的背景效果图)目前流行的做法是滚动动态加载,也就是懒加载,显示在屏幕之外的图片默认不加载,随着页面的滚动,图片进入了显示的范围,则触发图片的加载显示。5.等到图片进入视口后,利用js提取data-url的真实图片地址赋值给src属性,就会去发送请求加载图片,真正实现了按需加载。

weixin_43872282的博客 4960

机器人学习-matlab四足机器人控制仿真

《机器人学,机器视觉与控制》学习笔记 使用工具箱版本9.10 题目与解决思路: 【1】. 通过减少复位期间的抬腿高度来缩短复位的轨迹 Z轴向下,为了减小复位器件的抬腿高度,应当缩小△Z,故可以将示例程序中zu值调大。 【2】. 增加腿的步幅 腿的步幅可由改变x方向上腿前进和后退运动的极限来达到,令xf = 7; xb = -xf;即可。 ...

weixin_44609769的博客 5538

0/1背包问题:从暴力递归到动态规划详解

题目: 有一组数量为 n 个物品,每个物品都有重量w 和价值v 给定一个背包bag,背包装的物品不能超过背包最大载重容量返回背包bag 能装下的最大价值1. 物品的重量和价值:2. 背包的容量:暴力解法的核心是递归,通过逐一决策每个物品是否放入背包,最终找到最优解。状态定义:递归逻辑:递归终止条件: 动态规划解法 递归的暴力解法有重复子问题,导致了大量的重复计算。为了解决这个问题,我们可以使用动态规划来优化。状态定义:状态转移:边界条件: 测试方法 示例解析 假设:我们希望找到在容量为

Mr.Ayao's blog 2065

图片懒加载的原理和实现

一,前置知识 1,为什么要图片懒加载 懒加载是一种对网页性能优化的方式,比如当访问一个页面的时候,优先显示可视区域的图片而不是一次性加载所有图片,当需要显示时,再发送图片请求,避免打开网页时加载过多资源。 当一个网站的加载图片过多时就需要懒加载的协助,页面图片多时,在首次载入时一次性加载会耗费时间长,使用懒加载可以使页面加载速度快、减轻服务器的压力、节省流量。 如下图: 随着滚轮滚动,底部的图片会被不断地加载,从而显示在页面上,也就是说懒加载其实就是按需加载,当页面需要显示图片的时候才进行加载,否则不加载

weixin_42349568的博客 1万+

用GraphPad Prism直出单细胞亚群堆叠柱状图

用GraphPad Prism直出单细胞亚群堆叠柱状图

fivehuge的博客 4196

uniapp 图片懒加载,图片懒加载

/ 滚动区域,不传默认是页面。// 错误显示的图片。

qq_40591925的博客 2679

流体动力学仿真软件:SU2_(1).SU2简介与安装

SU2 是一个开源的计算流体动力学(CFD)和计算结构动力学(CSD)仿真软件,由斯坦福大学的航空航天系开发。它主要用于解决流体动力学问题,包括但不限于空气动力学、热力学、化学反应流等。SU2 的特点在于其高度的灵活性和可扩展性,使其成为科研和工业领域中非常受欢迎的工具。SU2 采用有限体积法(FVM)和有限元法(FEM)进行数值求解,支持多种物理模型和求解器,如 Euler 方程、Navier-Stokes 方程、RANS 方程等。

kkchenjj的博客 1313

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

懒加载<图片懒加载>

监听 scroll、resize 等事件,当事件触发时,获取图片元素的位置信息、滚动高度及视口高度,计算出当前图片元素是否出现在视口内,如果出现了则加载图片。当页面滚动时,vue-lazyload 会检测元素是否进入可视区域,如果是,则替换元素的 src 或者 style 属性,从而实现懒加载。在比较长的网页或应用中,如果图片很多,所有的图片都被加载出来,而用户只能看到可视窗口的那一部分图片数据,这样就浪费了性能。:所有浏览器都兼容,可以比较灵活,自定义触发加载的时机,可以结合图片加载预览提升用户体验。

Cshaosun的博客 1364

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java对图片懒加载_图片懒加载

一、前言为啥要对图片使用懒加载?我们首先来聊聊这个问题,对于页面来说架子啊速度影响着最大的就是图片,一张普通的图片可以达到4-5M的大小,而代码压缩也就只有几十KB。当页面图片过多的时候,页面加载速度很缓慢,一个页面加载几秒没有完成,用户体验不好,会丧失很多用户的。所以对于图片过多的页面,可以为了加速页面加载速度,很多时候我们需要将页面内未出现的可视区域内的图片先不加载,等到滚动到可视区的时候录再...

weixin_32605973的博客 699

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

图片懒加载的原理及实现

为什么要使用图片懒加载呢?什么是图片懒加载呢? 1. 原理 图片懒加载是前端页面优化的一种方式,在页面中有很多图片的时候,图片加载就需要很多时间,很耗费服务器性能,不仅影响渲染速度还会浪费带宽,为了解决这个问题,提高用户体验,所以就出现了懒加载这种方式来减轻服务器的压力,优先加载可视区域的内容,其他部分等进入了可视区域再加载,从而提高性能。 2. 实现 思路:在图片没有进入可视区域时,先不给的src赋值,这样浏览器就不会发送请求了,等到图片进入可视区域再给src赋值。图片的真实地址需要存储在data-src

xiaomao_wxj的博客 7036

图片懒加载的几种方法

在一些图片比较多的网站会用到 图片懒加载 技术,这项技术可以延迟加载图像,只当图片出现在我们看到的视图中才加载,它的好处是大大提高用户体验,节省不必要的资源浪费以及网站的性能提升等。下面介绍几种图片懒加载的方法,分别是监听 scroll、resize 事件,使用 Intersection Observer API 以及 Chrome70 自带的懒加载设置。任何技术都是为解决问题服务的。在开始之前,...

LightLinV的博客 2399

Vue图片懒加载

1、问题 在vue项目中,如果图片是从服务器端加载到页面上,图片较大的时候,就会存在一部分一部分加载的情况,会显示非常卡顿,影响体验。 2、实现 (1)、图片懒加载 首先将图片的src链接设为一张我们已经准备好的图片(比如类似加载中的图片),并将其真正的图片地址存储在img标签的自定义属性中。当js监听到该图片元素进入可视窗口时,即将自定义属性中的地址存储到src属性中,达到懒加载的效果。这样就可以缓解服务器压力,并且提高用户体验。 (2)、安装vue-lazyload npm i vue-lazyload

小绵杨 4071

通过图片懒加载进行优化

懒加载定义: 延迟加载图片或符合某些条件时才加载某些图片,通常用于图片比较多的网页。可以减少请求数或者延迟请求数,优化性能。 呈现形式:​​​​​​​ 延时加载,使用setTimeout或setInterval进行加载延迟,如果用户在加载前就离开,自然就不会进行加载。 条件加载,符合某些条件或者触发了某些条件才开始异步加载。 可视区域加载,仅仅加载用户可以看到的区域,这个主要监控滚动条来...

Moon Star 2000

路由懒加载和图片懒加载

懒加载 在项目中为了优化加载速度和节约资源,会使用懒加载这一概念。 下面例子是基于vue框架实现的懒加载。 路由懒加载 vue项目实现路由按需加载(路由懒加载)的3种方式 - 简书 (jianshu.com) 路由懒加载 | Vue Router (vuejs.org) 常用方法:es规范的import() 注意:webpackChunkName可以把某个路由下的所有组件都打包在同个异步块 (chunk) 中 图片懒加载 懒加载原理是什么 先将 img 标签中的src链接设为同一张图片(空白图片),将其真正

weixin_42713144的博客 925

原生js实现图片懒加载

首先,先讲讲什么叫图片懒加载吧,当打开一个有很多图片的页面时,先只加载页面上看到的图片,等滚动到页面下面时,再加载所需的图片。 然后,为什么要实现图片懒加载呢?因为减少或延迟请求数,缓解浏览器的压力,增强用户体验。 第一步,获取所有图片 第二步, 获取 页面 可视区域高度 第三步, 获取 滚动 高度 <body> <img src="./img/loading.gif" lazyload-src="./img/1.jpg" alt=""> <img src="

Liang_nm的博客 2350
上一篇: rem和em的区别
下一篇: css使容器实现垂直水平居中的几种方法
枫叶在飘呀
博客等级 码龄7年 96粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值