当前位置: 首页 > 知识库问答 >
问题:

javascript - html中Ctrl+滚轮时想禁用放大和缩小事件,怎样禁用?

佴英奕
2023-09-23

试了下resize没好使啊。

<!DOCTYPE html><html><head>    <title>Disable Zoom</title>    <style>        .a {          width: 300px;          height: 300px;          background: #f00;        }    </style></head><body>  <div class="a"></div></body></html>

共有2个答案

向和歌
2023-09-23

很容易找到
1.pc端,原生

    document.addEventListener('mousewheel', function (e) {      e = e || window.event;      if ((e.wheelDelta && event.ctrlKey) || e.detail) {        event.preventDefault();      }    }, { capture: false, passive: false});    document.addEventListener('keydown', function (event) {      if ((event.ctrlKey === true || event.metaKey === true)        && (event.keyCode === 61 || event.keyCode === 107          || event.keyCode === 173 || event.keyCode === 109          || event.keyCode === 187 || event.keyCode === 189)) {        event.preventDefault();      }    }, false);

2.vue 页面

  methods: {    keepRatio () {      var ratio = 0;  // 定义一个缩放比例      var screen = window.screen;  // 获取窗口对象      var ua = navigator.userAgent.toLowerCase();      if (window.devicePixelRatio !== undefined) {        ratio = window.devicePixelRatio;  // 像素大小的比例      }      else if (ua.indexOf('msie')) {        if (screen.deviceXDPI && screen.logicalXDPI) {          ratio = screen.deviceXDPI / screen.logicalXDPI;        }      }      else if (window.outerWidth !== undefined && window.innerWidth !== undefined) {        ratio = window.outerWidth / window.innerWidth;  // 外部比例/内部比例:缩放比例      }      if (ratio) {ratio = Math.round(ratio * 100)}      this.ratio = (ratio / 100).toFixed(2);      document.body.style.zoom = 1 / this.ratio;  // 窗口视图除以缩放比例:即缩放还原    }  }  mounted () {    this.keepRatio()    window.addEventListener('resize', () => {//监听窗口缩放     this.keepRatio()    });  }
田文景
2023-09-23

要禁用 HTML 中的放大和缩小事件,你可以使用 JavaScript 来捕获 wheel 事件并阻止其默认行为。以下是你可以尝试的示例代码:

<!DOCTYPE html><html><head>    <title>Disable Zoom</title>    <style>        .a {          width: 300px;          height: 300px;          background: #f00;        }    </style></head><body>  <div class="a"></div>  <script>    var prevent = function(e) {      e.preventDefault();    };    var elements = document.getElementsByClassName('a');    for (var i = 0; i < elements.length; i++) {      elements[i].addEventListener('wheel', prevent);    }  </script></body></html>

在上面的代码中,我们首先定义了一个名为 prevent 的函数,它接收一个事件对象并调用 preventDefault 方法来阻止事件的默认行为。然后,我们通过 getElementsByClassName 方法获取到类名为 a 的所有元素,并使用循环为每个元素添加了 wheel 事件的监听器。当触发滚轮事件时,prevent 函数将被调用,从而阻止了放大和缩小事件的默认行为。

请注意,这种方法只适用于浏览器中的滚轮事件,而不会影响操作系统级别的缩放功能。此外,这种方法可能会影响到其他依赖于滚轮事件的行为,因此需要谨慎使用。

 类似资料:
  • 我正在一个WordPress网站上工作,作者通常会在大多数帖子中使用iFrames嵌入Google地图。 有没有办法使用Javascript通过鼠标滚轮禁用所有这些缩放?

  • 问题内容: 我的网站上有以下iframe: 它具有滚动条。 如何摆脱它们? 问题答案: 不幸的是,我认为仅通过HTML和CSS属性完全符合HTML5的想法是不可能的。幸运的是,大多数浏览器仍然支持该属性(已从HTML5规范中删除了该属性)。 并不是HTML5的解决方案,因为唯一 错误地 支持HTML5的现代浏览器是Firefox。 当前的解决方案是将两者结合起来: 但是随着浏览器的更新,这可能变得

  • 问题内容: 有谁知道禁用WKWebView中的双击和缩小缩放的简单方法?我没有尝试过的工作: 在html中: 问题答案: 您将必须在脚本中添加最大比例。 以下代码应为您提供帮助:

  • 我在Windows 10中使用的是gVim。这是最新版本(8.2),这就是问题所在。以前滚动轮从未移动过我的光标。Vim现在对我来说基本上毫无用处。当我用中间按钮(滚动轮)粘贴时,光标会移动。我在_vimrc中尝试了nmap、imap、vmap,但没有任何改变。如果有人救不了我,我会被困在记事本里。 如何关闭滚轮?请不要告诉我在Windows中做任何事情,只有vim。

  • 问题内容: 显然一个被禁用的没有被任何事件处理 有没有解决此问题的方法? 在这里,我需要单击输入以启用它。但是,如果我不激活它,则不应发布输入。 问题答案: 禁用的元素不会触发鼠标事件。大多数浏览器会将事件从禁用元素传播到DOM树,因此事件处理程序可以放在容器元素上。但是,Firefox不会表现出这种行为,当您单击禁用的元素时,它根本不执行任何操作。 我想不到更好的解决方案,但是,为了完全兼容跨浏

  • 抱歉,如果标题解释得不好,我有这个页面,有两个按钮和一个文本块,一个用于增加文本大小,另一个用于减少文本大小。我想在文本达到最大或最小大小时禁用每个按钮。例如: 点击“放大”按钮,如果文本达到最大大小,则禁用该按钮。点击“较小”按钮,如果文本达到最小大小,则禁用该按钮。 我尝试在onhtml函数中使用下一个if语句: 其中66.6667pt是文本在保持固定前达到的大小。另一种情况下,最小尺寸为6.