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个像素点,依然保留了懒加载的功能,并非把所有的图片都提前加载完。
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 处理在 electron 中使用开启了懒加载的 el-image 后,窗口最大化或窗口尺寸变化后图片无法显示的问题
发表评论 取消回复