javascript - 防止像figma那样放大网页,

标签 javascript html

我正在开发一个拖放应用程序,我需要防止用户放大和缩小网页,例如

    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

也尝试过

 document.addEventListener("wheel", zoomShortcut); //add the event

  function zoomShortcut(e) {
    console.log(e);

    e.preventDefault(); //prevent zoom


  }

它们都不起作用。

最佳答案

所以我的问题主要是针对 mac 用户的,所以我必须打开一些文档并阅读有关事件 gesturestart 的内容,我认为这主要是关于 mac 书籍的,所以我对我的代码并添加了这个监听器

  document.addEventListener("gesturestart", e => {
    e.preventDefault();
    doStuff(e);
  });

还添加了

  document.addEventListener('wheel', function(e) {
    e.preventDefault();
    doStuff(e);
  });

并运行了适用于 safari 的代码,但是当我在 chrome 上运行时出现错误

Unable to preventDefault inside passive event listener invocation.

经过一些研究后,我发现了一些关于在事件监听器中设置被动选项的信息,因此我的代码变得

 document.addEventListener('wheel', function(e) {
    e.preventDefault();
    doStuff(e);
  },{passive:false});

这解决了我的问题,我能够防止 Figma 等用户在整个网页上进行捏缩放

关于javascript - 防止像figma那样放大网页,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59916134/

相关文章:

html - 根据响应式布局中前一个元素的宽度更新同级元素 css

javascript - 如何在javascript中删除部分字符串

javascript - 快速 blob 下载

javascript - GoogleMap API 事件点击放大

jquery - 随着 jQuery DOM 操作(添加/删除/等)的内容更改,页面页脚在 View 中上下跳动

html - 如何在 Dart 中为网页制作预加载器

javascript - 如何确保异步方法已完成

javascript - CSS Marquee Slider 补偿外宽减去内宽

css - <ul> <li> 在不同屏幕分辨率下的 Div 标签问题

html - 如何在选择时更改/删除表单边框颜色?(Chrome)