当前位置: 首页 > news >正文

react图片预加载

道阻且长,行而不辍,未来可期

图片预加载的原理:new一个image对象,用这个对象加载图片,等这个对象将这个图片请求完后,再将这个图片放入原本应该放置的位置

代码如下:

import React, { useEffect, useState } from 'react';const ImagePreloader = ({ src }) => {const [isLoading, setIsLoading] = useState(true);const [isError, setIsError] = useState(false);useEffect(() => {//new一个image对象,用这个对象加载图片const image = new Image();image.src = src;//图片加载完成image.onload = () => {setIsLoading(false);};//图片加载错误image.onerror = () => {setIsLoading(false);setIsError(true);};return () => {// 清除事件处理程序以避免内存泄漏image.onload = null;image.onerror = null;};}, [src]);return (<div>{isLoading ? (<div>Loading...</div> // 可根据需求自定义加载时的显示内容) : isError ? (<div>Error loading image</div> // 图片加载错误时的显示内容) : (<img src={src} alt="Preloaded" />//等图片加载完成后,再把图片赋值给组件中的img)}</div>);
};export default ImagePreloader;

骨架屏

图片预加载的时候,可以使用骨架屏做加载效果
使用padding-top:100%给图片的高度做占位
简单的骨架屏效果

.imgLoading {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: linear-gradient(90deg,rgba(190, 190, 190, 0.2) 25%,rgba(129, 129, 129, 0.24) 37%,rgba(190, 190, 190, 0.2) 63%);background-size: 400% 100%;animation: skeleton-loading 1.4s ease infinite;}@keyframes skeleton-loading {0% {background-position: 100% 50%;}100% {background-position: 0 50%;}}
http://www.lryc.cn/news/142688.html

相关文章:

  • 数据库管理
  • 【2023年11月第四版教材】《第8章-整合管理》(第3部分)
  • 初阶数据结构(三)链表
  • Python小知识 - 八大排序算法
  • 安卓动态申请权限
  • 关于亚马逊云科技云技能孵化营学习心得
  • 计算机安全学习笔记(III):强制访问控制 - MAC
  • java判断ip是否为指定网段
  • 如何通过人工智能和自动化提高供应链弹性?
  • 【Apollo学习笔记】——规划模块TASK之PATH_REUSE_DECIDER
  • 框架分析(6)-Ruby on Rails
  • LLMs NLP模型评估Model evaluation ROUGE and BLEU SCORE
  • BlazorServer中C#与JavaScript的相互调用
  • 深入理解 MD5 消息摘要算法和在密码存储中的应用及安全隐患
  • python网络爬虫指南二:多线程网络爬虫、动态内容爬取(待续)
  • 华为AirEgine9700S AC配置示例
  • VUE3基础
  • Qt应用开发(基础篇)——日历 QCalendarWidget
  • Python学习笔记:正则表达式、逻辑运算符、lamda、二叉树遍历规则、类的判断
  • 【滑动窗口】leetcode1004:最大连续1的个数
  • 力扣:73. 矩阵置零(Python3)
  • VB|基础语法 变量定义 函数定义 循环语句 IF判断语句等
  • Github 博客搭建
  • 模型预测笔记(三):通过交叉验证网格搜索机器学习的最优参数
  • 创建型模式-建造者模式
  • Rust常用加密算法
  • [管理与领导-55]:IT基层管理者 - 扩展技能 - 1 - 时间管理 -2- 自律与自身作则,管理者管好自己时间的五步法
  • 电子商务员考试题库及答案(中级)--判断题
  • (WAF)Web应用程序防火墙介绍
  • SpringMVC拦截器常见应用场景