图片懒加载

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

1.offsetTop 为元素距离顶部的距离;window.innerHeight 为当前窗口的高度;window.scrollY 为滚动距离;不难知道,当 i.offsetTop <= window.innerHeight + window.scrollY时图片就处于窗口可视区

//获取全部img标签
var images = document.getElementsByTagName("img");
 
 window.addEventListener("scroll", (e) => {
    //当发生滚动事件时调用ergodic事件
    ergodic();
  });
  function ergodic() {
    // 遍历每一张图
    for (let i of images) {
      //判断当前图片是否在可视区内
      if (i.offsetTop <= window.innerHeight + window.scrollY) {
          //获取自定义data-src属性的值
          let trueSrc = i.getAttribute("data-src");
          //把值赋值给图片的src属性
          i.setAttribute("src", trueSrc);
      }
    }
  }
  //没发生滚动事件时也要先执行一次
  ergodic();

2.getBoundingClientRect().top 为元素相对于窗口的位置;window.innerHeight 为当前窗口的高度;当元素对于窗口的位置小于当前窗口的高度时,即处于窗口可视区

window.addEventListener("scroll", (e) => {
      ergodic();
    });
    function ergodic() {
      for (let i of images) {
        //计算方式和第一种方式不同
        if (i.getBoundingClientRect().top < window.innerHeight) {
          let trueSrc = i.getAttribute("data-src");
          i.setAttribute("src", trueSrc);
        }
      }
    }
    ergodic();

上面两种方案的缺点,就是一当发生滚动事件时,就发生了大量的循环和判断操作判断图片是否可视区里

3.引入一个叫 Intersection Observer 观察器接口,它是是浏览器原生提供的构造函数
缺点:兼容性不太好

var images = document.getElementsByTagName("img");
  function callback(entries) {
   for (let i of entries) {
     if (i.isIntersecting) {
         let img = i.target;
         let trueSrc = img.getAttribute("data-src");
         img.setAttribute("src", trueSrc);
         // 结束观察
         observer.unobserve(img);
     }
   } 
 }
     const observer = new IntersectionObserver(callback);
     for (let i of images) {
       observer.observe(i);
     }
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

深入:Window的对象Scroll

Window.innerHeight Height (in pixels) of the browser window viewport including, if rendered, the horizontal scrollbar. 窗口中文档显示区域的高度,不包括菜单栏、工具栏等部分 IE不支持该属性,IE中body元素的clientHeight属性与该属性相同。Window.scrol

dazhong_333的博客 1168

Python实战:用nltk库5步搭建你的第一个n-gram文本生成器(附古诗生成案例)

本文详细介绍了如何使用Python的nltk库5步搭建n-gram文本生成器,并附有古诗生成案例。从环境准备、n-gram原理讲解到完整实现,逐步指导开发者掌握自然语言生成技术。特别针对中文古诗生成进行了优化,包括分词处理和韵律控制,帮助读者快速上手文本生成项目。

weixin_29090089的博客 202

JavaScript页面事件与滚动

属性/方法用途适用场景scrollTopscrollLeft获取/设置元素滚动距离自定义滚动控制获取元素内容总尺寸(含溢出部分)判断是否可滚动或加载更多数据scrollX获取文档滚动距离(推荐替代页面滚动位置监听scrollTo()scrollBy()控制滚动位置(支持平滑滚动)导航到指定位置或动画效果属性/方法说明e.pageX/Y鼠标相对于文档左上角的坐标(含滚动偏移)鼠标相对于视口左上角的坐标(不含滚动偏移)鼠标相对于屏幕左上角的坐标文档当前水平/垂直滚动距离(等同于。

2301_82023822的博客 1934

解决TextMeshPro在AB打包中的字体冗余问题:源码修改全记录

本文详细介绍了如何解决TextMeshPro在AB打包中的字体冗余问题,通过源码改造和工程实践优化Unity项目的性能。内容包括资源加载路径重构、AB打包策略优化及运行时加载方案,有效减少包体体积和构建时间,提升内存效率。

weixin_42558257的博客 184

从FER2013到AffectNet:表情识别数据集十年演进史与你的项目选型攻略

本文回顾了从FER2013到AffectNet等主流人脸表情识别数据集的十年演进历程,详细分析了各数据集的特点、适用场景及技术突破。针对不同项目需求,提供了从移动端应用到高精度研究的选型策略,特别强调AffectNet在现代FER项目中的核心价值,并给出混合数据集构建的实战方案。

weixin_26808439的博客 521

如何使用 JavaScript 获取页面滚动位置?

获取和使用滚动位置是前端开发中常见的需求。在 JavaScript 中,你可以通过获取页面的滚动位置,或者通过和获取特定元素的滚动位置。结合滚动事件监听、懒加载、平滑滚动和无限滚动等技术,可以提升用户体验,并为页面添加更复杂的交互功能。

向着太阳迎着光 3018

003、高通骁龙Spectra ISP架构深度解析:IFE/BPS/IPE流水线与Chromatix调优实战

摘要: 本文深入解析高通骁龙Spectra ISP架构,重点剖析IFE、BPS、IPE三阶段的流水线协作机制与Chromatix调优实战。通过夜景预览"水波纹"案例,揭示HDR对齐与TNR运动估计的关联性问题,指出ISP调优需关注模块间的时序与带宽约束。文章详解各模块核心功能:IFE负责RAW域处理(HDR合成/校正),BPS专注降噪与细节增强,IPE进行YUV域精处理。针对Chromatix调优,强调参数与寄存器映射关系,并给出LSC网格密度、TNR运动灵敏度、LTM光晕等典型问题的解决方案。最后提出实用

zzfmlxs的博客 228

监听 window 的 scroll 事件

如果你不想引入 lodash,可以自己写一个简单的 throttle:if (!然后在组件里这样使用:}, []);场景推荐方式监听整个页面滚动优化频繁触发使用throttle或debounce监听某个 div 滚动对该 DOM 元素添加检测元素是否进入视口使用。

id9426的博客 614

【一 扣子客户案例合集】【 1.3 识典古籍基于扣子智能助手的古籍数字化全流程技术解析】

古籍数字化智能处理系统全流程解析 本文详细介绍了基于扣子智能助手的古籍数字化解决方案,核心技术包括: 多层级架构设计:采用"云-边-端"三层次架构,整合高精度扫描设备与AI处理模块,实现从物理古籍到结构化数据的全流程自动化。 智能图像处理:通过12道预处理工序(包括畸变校正、污渍去除和对比度增强)处理古籍图像,采用改进的EAST算法和ViT模型实现高精度文字检测与识别,准确率达98.7%。 NLP增强处理:结合Transformer-XL预训练模型和N-gram语言模型进行文本校正,基于

商务合作|问题讨论|交流学习 请联系作者微信,加微信请务必注明来意,博客主页有联系方式 1440

手把手教你学AI GPU的UMD驱动软件开发专栏简介

通过本专栏的学习,您将掌握UMD的核心概念、开发环境搭建、API实现、内存管理和同步技术,以及在实际AI场景中的应用。通过本专栏的学习,您将不仅掌握UMD驱动开发的核心技术,还将能够将这些技术应用到实际的AI应用场景中,为您的AI应用提供更高效的硬件加速支持。无论您是想开发自己的AI加速框架,还是希望深入理解现有AI加速库的工作原理,本专栏都将为您提供宝贵的知识和实践经验。:本专栏不仅讲解UMD驱动的核心概念,还通过精心设计的实战案例,引导您从零开始构建UMD驱动,真正掌握AI GPU驱动开发的技能。

MHD0815的博客 113

获取页面滚动距离pageYOffset、scrollY、scrollTop

在获取页面滚动距离的高度时候,往往有不同的获取方式,而且不同的属性浏览器支持稍有差别: pageYOffset:属window对象,IE9+、Firefox、Chrome、Opera均支持该方式获取页面滚动敢赌值,并且会忽略DOCTYPE定义规则。 window.pageYOffset scrollY:属于window对象,Firefox、Chrome、Opera均支持,IE不支持,忽略DOCTYPE定义规则。 window.scrollY 页面如果未定义DOCTYPE文档头,所有浏览器都支持

qq_43654065的博客 6255

【AN7581】AN7581 SDK编译环境搭建操作说明

安装编译需要的工具包。

wgl307293845的博客 338

图片懒加载的原理和实现

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

weixin_42349568的博客 1万+

linux内核学习(八)---摄像头框架移植(上)

本章来开始进行摄像头的移植,同时回顾一下V4L2的整个框架

文艺小少年的博客 113

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

懒加载<图片懒加载>

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

Cshaosun的博客 1364

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

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

qq_40591925的博客 2676

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

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

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

weixin_32605973的博客 699

图片懒加载的原理及实现

为什么要使用图片懒加载呢?什么是图片懒加载呢? 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

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

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

tyxjolin的专栏 3980
上一篇: vue 加载720全景图
下一篇: RESTful api
蜗牛与藤曼
博客等级 码龄9年 1万+粉丝 89原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值