您的位置:首页 > 房产 > 家装 > 处理在 electron 中使用开启了懒加载的 el-image 后,窗口最大化或窗口尺寸变化后图片无法显示的问题

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

2024/10/7 2:18:30 来源:https://blog.csdn.net/qq_45897239/article/details/140441761  浏览:    关键词:处理在 electron 中使用开启了懒加载的 el-image 后,窗口最大化或窗口尺寸变化后图片无法显示的问题

文章目录

      • 1、问题描述
      • 2、详情动图
      • 3、解决思路
      • 4、解决方案
      • 5、效果展示

1、问题描述

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

2、详情动图

详情动图

3、解决思路

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

4、解决方案

<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>
// 绑定图片展示主容器
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个像素点,依然保留了懒加载的功能,并非把所有的图片都提前加载完。

效果展示

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com