处理在 electron 中使用开启了懒加载的 el-image 后,窗口最大化或窗口尺寸变化后图片无法显示的问题

文章目录

1、问题描述

electron 中使用 el-image 时,开启了懒加载后,发现只有当窗口滚动后,图片才会显示,即便图片已经处于窗口的可视区域。当拖动窗口使其尺寸变大及点击窗口最大化后发现图片无法显示。

2、详情动图

3、解决思路

由于拖拽及窗口最大化时,窗口无滚动,只好通过手动方式滚动装载图片的父级容器,该父级容器设置了 overflow: scroll;overflow-y: auto 属性,在组件挂载前滚动界面并监听 resize 事件,组件卸载后取消监听,即可修复该问题。

4、解决方案

html 复制代码
<div id="imgs" ref="scrollContainer">
    <el-image 
    :src="info.small" 
    lazy 
    fit="contain" 
    :preview-src-list="imgPathList" 
    :initial-index="index" 
    :hide-on-click-modal="true">
        <template #error id="img_error">
            <div class="image-slot">Loading image error</div>
        </template>
    </el-image>
</div>
js 复制代码
// 绑定图片展示主容器
const scrollContainer = ref(null);

const handleResize = () => {
    nextTick(() => {
        if (scrollContainer.value) {
            // 只需滚动 1px 即可解决,无需过多,但也不可太少
            scrollContainer.value.scrollTop += 1;
        }
    });
};

onMounted(() => {
    handleResize();
    window.addEventListener("resize", handleResize);
});

onUnmounted(() => {
    window.removeEventListener("resize", handleResize);
});

5、效果展示

通过观察dom元素结构还发现,即便手动滚动了1个像素点,依然保留了懒加载的功能,并非把所有的图片都提前加载完。

相关推荐
xqqxqxxq7 分钟前
《智能仿真无人机平台(多线程V2.0)技术笔记》(线程进阶: 无人机自动防空平台开发教程)
笔记·无人机·cocos2d
三伏5227 分钟前
Cortex-M3权威指南Cn第七章——笔记
笔记·cortex-m3
object not found13 分钟前
基于uniapp开发小程序自定义顶部导航栏状态栏标题栏
前端·javascript·小程序·uni-app
We་ct34 分钟前
LeetCode 28. 找出字符串中第一个匹配项的下标:两种实现与深度解析
前端·算法·leetcode·typescript
xzl0435 分钟前
小智服务端chat入口工具调用流程
java·服务器·前端
丝斯201136 分钟前
AI学习笔记整理(56)——大模型微调
人工智能·笔记·学习
峥嵘life38 分钟前
Android16 EDLA【CTS】CtsNetTestCases存在fail项
android·java·linux·学习·elasticsearch
小码吃趴菜44 分钟前
Shell脚本编程
前端·chrome
心.c1 小时前
Vue3+Node.js实现文件上传并发控制与安全防线 进阶篇
前端·javascript·vue.js·安全·node.js
楼田莉子1 小时前
Linux进程间通信——管道
linux·运维·服务器·c++·学习