禁用一个div变焦,但允许在页面上缩放(备用格)(Disable zoom on a div, bu

2019-07-05 09:01发布

有没有办法对一个div,或网站上的任何特定元素禁用变焦? 例如,如果我想的页面是可缩放的,但不是#header div充满了,有没有一种方法,使一个可缩放,以及其他没有缩放?

基本上,当你放大在移动设备上,它放大了头,但我却希望头在任何时候都(不缩放)一个固定大小。

我知道,你可以使用此代码来禁用整体缩放:

<meta content='width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;' name='viewport' />

Answer 1:

你不能这样做,没有聪明的黑客。

但是,你可以(也应该)使用下面的CSS来解决移动设备上的缩放问题:

header {
    position: fixed;
    ...
}

@media only screen and (max-width: 720px) {
    header {
        position: absolute;
    }
}

这种代码使position: absolute时显示宽度小于或等于720像素,和报头成为页的一部分,而不是被固定在上面。



Answer 2:

我不认为你可以直接做到这一点。 一个可能的选择是通过JS事件和缩放元素相应检测变焦。

另一种选择是,以“破” CTRL键禁用缩放您的网站上,但是这只是一个大禁忌。



Answer 3:

在更短的,你当然可以这样做。

根据从各种新窗口和内部宽度和高度属性计算的dpi的变化,您可以捕获窗口调整大小事件和调整您的浮动DIV。

所以,当你放大 ,你要收缩的浮动DIV因此它保留了原来的DPI,反之亦然。

这将是一个史诗般的小提琴 - 很快重温这个答案,因为我可能会做这样的事情。 已经注意到一些跨浏览器的不一致性与DPI,所以是的,好玩的。



Answer 4:

如果您使用的角度是有办法给一个ID,以你的头格,然后写了下面的代码控制器:

document.getElementById("viewport").setAttribute('content','user-scalable=yes, width=device-width, minimum-scale=1, maximum-scale=1');

我在项目中使用,效果不错..



文章来源: Disable zoom on a div, but allow zoom on the page (an alternate div)