From bf813cecffd4c62ea4cf24d7d721853ad4079cc7 Mon Sep 17 00:00:00 2001 From: 13659257719 <819781841@qq.com> Date: Tue, 31 Oct 2023 17:51:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?[inula-dev-tools]=20=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E4=BD=8E=E7=89=88=E6=9C=AC=E6=B5=8F=E8=A7=88=E5=99=A8?= =?UTF-8?q?=E7=9A=84=E7=AA=97=E5=8F=A3=E7=9B=91=E5=90=AC=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/inula-dev-tools/src/components/SizeObserver.tsx | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 packages/inula-dev-tools/src/components/SizeObserver.tsx diff --git a/packages/inula-dev-tools/src/components/SizeObserver.tsx b/packages/inula-dev-tools/src/components/SizeObserver.tsx new file mode 100644 index 00000000..e69de29b From 8a562c44a22c49af7bb29b7bdc2f60c905d61453 Mon Sep 17 00:00:00 2001 From: 13659257719 <819781841@qq.com> Date: Wed, 1 Nov 2023 09:08:53 +0800 Subject: [PATCH 2/2] =?UTF-8?q?[inula-dev-tools]=20=E5=85=BC?= =?UTF-8?q?=E5=AE=B9=E4=BD=8E=E7=89=88=E6=9C=AC=E6=B5=8F=E8=A7=88=E5=99=A8?= =?UTF-8?q?=E7=9A=84=E7=AA=97=E5=8F=A3=E7=9B=91=E5=90=AC=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/resizeEvent.ts | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 packages/inula-dev-tools/src/components/resizeEvent.ts diff --git a/packages/inula-dev-tools/src/components/resizeEvent.ts b/packages/inula-dev-tools/src/components/resizeEvent.ts new file mode 100644 index 00000000..747faef3 --- /dev/null +++ b/packages/inula-dev-tools/src/components/resizeEvent.ts @@ -0,0 +1,95 @@ +/* + * Copyright (c) 2023 Huawei Technologies Co.,Ltd. + * + * openInula is licensed under Mulan PSL v2. + * You can use this software according to the terms and conditions of the Mulan PSL v2. + * You may obtain a copy of Mulan PSL v2 at: + * + * http://license.coscl.org.cn/MulanPSL2 + * + * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, + * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, + * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. + * See the Mulan PSL v2 for more details. + */ + +/** + * + * 由于 ResizeObserver 对 IE 和低版本主流浏览器不兼容,需要自己实现一套兼容方案 + * 这是一个不依赖任何框架的监听 dom 元素尺寸变化的解决方案 + * 浏览器出于性能考虑,只有 window 的 resize 事件会触发,我们通过 object 标签可以得到 + * 一个 window 对象,让 object dom 元素成为待观测 dom 的子元素,并且和待观测 dom 大小一致。 + * 这样一旦待观测 dom 的大小发生变化,window 的大小也会发生变化,我们就可以通过监听 window + * 大小变化的方式监听待观测 dom 的大小变化 + * + *