【问题标题】:How do I prevent CTRL & Scroll Wheel / Trackpad Zooming in Flutter Web?如何防止 CTRL 和滚轮/触控板在 Flutter Web 中缩放?
【发布时间】:2021-07-06 09:46:27
【问题描述】:

问题

如果我在 Chrome (Windows) 中使用 CTRL + 滚轮或捏合来缩放触控板,我会看到这种奇怪的行为:

Flutter Web 应用正在调整大小但也留下了工件。

用例

如果我想覆盖滚动放大/触控板缩放行为,以便在我的 Flutter Web 应用程序中使用它来放大画布,例如,这会阻止我这样做。即使我对缩放手势做出反应,Flutter 也不会阻止这种默认行为。

那么我该如何防止这种情况发生呢?

【问题讨论】:

    标签: javascript html flutter dom flutter-web


    【解决方案1】:

    这可以简单地使用 HTML DOM JavaScript 来防止:

    // This prevents zooming in using CTRL + mouse wheel.
    // See https://stackoverflow.com/a/67039291/6509751.
    document.addEventListener('wheel', function(e) {
      e.ctrlKey && e.preventDefault();
    }, {
      passive: false,
    });
    

    只需将其添加到 Flutter Web 应用的 index.html 文件的 <body> 标记中:

    <script>
      // This prevents zooming in using CTRL + mouse wheel.
      // See https://stackoverflow.com/a/67039291/6509751.
      document.addEventListener('wheel', function(e) {
        e.ctrlKey && e.preventDefault();
      }, {
        passive: false,
      });
    </script>
    

    【讨论】:

      猜你喜欢
      • 2011-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      相关资源
      最近更新 更多