使用 Javascript/Jquery 在桌面 Web 浏览器中禁用页面缩放 [重复]

Posted

技术标签:

【中文标题】使用 Javascript/Jquery 在桌面 Web 浏览器中禁用页面缩放 [重复]【英文标题】:Disable zooming of the page in desktop web browsers using Javascript/Jquery [duplicate] 【发布时间】:2012-12-12 14:48:17 【问题描述】:

可能重复:How to detect page zoom level in all modern browsers?

var obj=document.body;  // obj=element for example body
// bind mousewheel event on the mouseWheel function
if(obj.addEventListener)

    obj.addEventListener('DOMMouseScroll',mouseWheel,false);
    obj.addEventListener("mousewheel",mouseWheel,false);

else obj.onmousewheel=mouseWheel;

function mouseWheel(e)

    // disabling
    e=e?e:window.event;
    if(e.ctrlKey)
    
        if(e.preventDefault) e.preventDefault();
        else e.returnValue=false;
        return false;
    

我正在开发一个网络应用程序,如果用户放大/缩小,所有 ui 元素的顺序都将不正确。那么,有没有什么办法可以预防呢?我已经想到了一些办法,但有可能吗?

1) 获取用户的屏幕分辨率。当窗口大小改变(宽度或高度)时,将窗口宽度/高度返回到屏幕宽度/高度。

2) 将鼠标滚动事件或键盘事件绑定为空。 (参考上面的演示代码),但是如果用户点击浏览器并选择放大呢?

谢谢

【问题讨论】:

此问题已在此处的相关问题中得到解答:***.com/questions/1713771/… 但是可以使用第一种方法吗? 即使您中断了所有可以让用户缩放的组合键,浏览器 UI 中仍然会有“缩放”按钮。这些不能被禁用。 有点失望,为什么在重复引用的询问、标题和回答如此糟糕的情况下标记重复的版主不改进参考,使其成为解决“重复”的好方法.至少可以修复引用副本的标题以匹配其内容。 【参考方案1】:
    var zoomlevel=1;

    $("body").dblclick(function(ev) 
        zoomlevel = zoomlevel == 1 ? 2 : 1;



        $(this).css(
            "-moz-transform":"scale("+zoomlevel+")",
            "-webkit-transform":"scale("+zoomlevel+")",
            "-o-transform":"scale("+zoomlevel+")",
            "-ms-transform":"scale("+zoomlevel+")"
        );


    );

【讨论】:

这个答案与问题有什么关系?双击会放大/缩小? @Joraid,双击没关系。这对于能够调整页面缩放很重要。这只是一个例子。这将是一个解决方案。

以上是关于使用 Javascript/Jquery 在桌面 Web 浏览器中禁用页面缩放 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用 javascript/jQuery 将桌面的 href url 切换到移动设备

JavaScript jQuery单击以显示/隐藏菜单,类似于桌面应用程序

我无法在 iOs 上使用任何 javascript (jQuery)

在 HTML5 画布上工作时出现 JavaScript (JQuery) 问题

如何在聊天中回复特定消息,就像使用 html css javascript/jquery 的 skype/whatsapp

如何知道没有 iphone 和 ipad,任何 javascript/jquery 效果/插件都适用于这些?