如何禁用 HTML 页面中的 Ctrl+滚轮缩放事件?

上周,我遇到一个问题,就是用户在使用网页时,通过Ctrl+滚轮缩放页面,导致页面布局出现问题。
我尝试了两种方法来解决它,一种是原生JavaScript,另一种是Vue框架。

2 02 3 年,我首先尝试了原生JavaScript的实现方式。
我需要在页面上监听mousewheel和keydown事件,并阻止浏览器默认的缩放行为。
具体来说,我监听了mousewheel事件,当检测到Ctrl键按下且触发滚轮滚动时,阻止默认行为。
同时,我也监听了keydown事件,当检测到Ctrl键与数字键盘的+/-或主键盘的=/-组合按下时,也阻止默认行为。

我那个朋友告诉我,在监听mousewheel时,如果未设置passive:false,浏览器可能忽略preventDefault(),导致无法阻止缩放。
所以,我在监听mousewheel事件时,设置了passive:false来确保preventDefault生效。

然后,我又尝试了Vue框架的实现方式。
在Vue组件中,我通过生命周期钩子和自定义方法来实现类似的功能。
我监听了窗口resize事件,并在mounted钩子中添加监听,并在回调中调整页面比例。
同时,我还定义了一个keepRatio方法,通过设置body的zoom属性(非标准属性,兼容性有限)或其他方式来维持比例。

然而,我发现Vue实现的局限性比较大,因为Vue示例中的keepRatio方法仅演示了比例调整逻辑,实际禁用缩放仍需结合原生事件监听。

总的来说,两种方法都可以实现禁用Ctrl+滚轮缩放的目的,但各有优缺点。
原生JavaScript方法比较直接,但兼容性可能稍微差一些。
Vue方法则相对灵活,但实现起来可能稍微复杂一些。

你看着办吧,哪种方法更适合你的需求。

html使用onmouseover事件怎么设置鼠标移动到图片或者文字上在旁边弹出一个图片介绍

直接说: 用HTML和CSS隐藏div,JavaScript控制显示和隐藏。
.s1 {position:absolute;display:none;},鼠标悬停图片上调用show()和dis()函数。
简单方法是图片上直接加alt属性,鼠标悬停显示文字介绍。

//修改方法: 1 . 如果要在s1 里放文字,把s1 中的换成
,写入文字。
2 . 如果图片本身需要显示文字,只需在标签里加入alt="文字描述"属性。