168 Star 1.1K Fork 278

GVPantv / L7

 / 详情

缩放浏览器的时候,会不断地触发resize事件

待办的
创建于  
2024-01-24 16:19

问题描述

不确定什么情况下会导致,在缩放浏览器大小的时候,L7会不断的触发resize事件,即使地图容器的大小已经不变,他还是会不断触发事件。
定位到是L7使用了element-resize-event库监听元素大小导致的问题,建议换成element-resize-detector

重现链接

业务代码大概如下,但该代码并未复现一直触发resize事件的情况,所以暂时不清楚什么场景下会复现

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <style>
    html,
    body {
      width: 100%;
      height: 100%;
      overflow: hidden;
      margin: 0;
    }
    #wrapper-container {
      --scale: 1;
      width: calc(1 / var(--scale) * 100%);
      height: calc(1 / var(--scale) * 100%);
    }
    #wrapper {
      color: #666;
      width: 100%;
      height: 100%;
      transform: scale(var(--scale));
      transform-origin: 0 0;
      position: relative;
      left: 0px;
      top: 0px;
      overflow: hidden;
    }
    .clearfix:after {
      clear: both;
    }
    .left,
    .right {
      width: 30%;
      height: 100%;
      float: left;
    }
    .center {
      float: left;
      width: 40%;
      height: 100%;
      overflow: hidden;
    }
  </style>
  <body>
    <div id="wrapper-container">
      <div id="wrapper" class="clearfix">
        <div class="left"></div>
        <div class="center"><div id="l7-container" style="width:100%;height:100%;overflow: hidden;position: relative;"></div></div>
        <div class="right"></div>
      </div>
    </div>
    <! --引入最新版的L7-->
    <script src="https://unpkg.com/@antv/l7"></script>
    <script>
      window.onload = () => {
        const scene = new L7.Scene({
          id: "l7-container",
          map: new L7.GaodeMap({
            style: "dark",
            center: [110.770672, 34.159869],
            pitch: 45,
          }),
        });
        window.addEventListener("resize", () => {
          const scrollHeight = 1164;
          const wrapperContainer = document.getElementById("wrapper-container");
          const newScale =
            scrollHeight > window.innerHeight
              ? window.innerHeight / scrollHeight
              : 1;
          wrapperContainer.style.setProperty("--scale", newScale);
          console.log(newScale, 21312);
        });
      };
    </script>
  </body>
</html>

重现步骤

预期行为

不要一直触发resize事件

平台

  • 操作系统: Windows
  • 网页浏览器: Edge

屏幕截图或视频(可选)

补充说明(可选)

评论 (0)

lth707 创建了任务
lth707 修改了描述
lth707 修改了描述
展开全部操作日志

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(1)
TypeScript
1
https://gitee.com/antv/L7.git
git@gitee.com:antv/L7.git
antv
L7
L7

搜索帮助