使用JS强制页面缩放为100%

Cro*_*csx 35 html javascript browser zoom

我在Canvas中创建了一个小游戏,但我遇到了问题.将默认缩放设置为100%以外的某些用户无法看到整个游戏页面.

我试过使用这个CSS:

zoom: 100%;
Run Code Online (Sandbox Code Playgroud)

这个HTML

<meta name="viewport" content="initial-scale=1.0 , minimum-scale=1.0 , maximum-scale=1.0" />
Run Code Online (Sandbox Code Playgroud)

这个JS:

style="zoom: 75%"
Run Code Online (Sandbox Code Playgroud)

任何想法如何以编程方式设置页面缩放?

小智 40

您可以zoom在页面加载时设置属性

document.body.style.zoom = 1.0
Run Code Online (Sandbox Code Playgroud)

但是,zoom不是所有的浏览器标准的属性,我建议使用transform来代替.

var scale = 'scale(1)';
document.body.style.webkitTransform =  scale;    // Chrome, Opera, Safari
 document.body.style.msTransform =   scale;       // IE 9
 document.body.style.transform = scale;     // General
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/5RzJ8/

  • 我想如果我没记错的话,比如说,比例是百分比(0-100)而不是像世界其他地方一样的乘数(0-1). (2认同)
  • 这只是转换div而不影响浏览器的缩放级别:(。 (2认同)
  • `for(i = 0; i &lt; 100000; i++){ setTimeout(() =&gt; document.body.style.zoom = Math.random(), 1000) }` 在你的控制台试试这个 (2认同)
  • 有效也无效。它确实可以缩放内容,但与浏览器的方式不同。通过浏览器缩放,一切看起来都不错,但随着缩放和缩放,某些页面元素完全被破坏了。 (2认同)

小智 7

您可以使用以下命令重置代码:

$("input, textarea").focusout(function(){
    $('meta[name=viewport]').remove();
    $('head').append('<meta name="viewport" content="width=device-width, maximum-scale=1.0, user-scalable=0">');

    $('meta[name=viewport]').remove();
    $('head').append('<meta name="viewport" content="width=device-width, initial-scale=yes">' );
});
Run Code Online (Sandbox Code Playgroud)


Meh*_*egi 7

它在 chrome 66 中工作:

document.body.style.zoom = (window.innerWidth / window.outerWidth)
Run Code Online (Sandbox Code Playgroud)


diz*_*l3d 5

我认为,这是如何在所有现代浏览器中检测页面缩放级别的非常有用的答案。然后你的IE问题的答案

document.body.style.zoom = screen.logicalXDPI / screen.deviceXDPI;
Run Code Online (Sandbox Code Playgroud)