简体   繁体   English

JavaScript-如何获取CSS缩放级别?

[英]JavaScript - How to get css zoom level?

a simple question. 一个简单的问题。 I want to use CSS Zoom level to resize my Site oncklick. 我想使用CSS缩放级别来调整我的网站的大小。

I want to catch the css zoom from "html" element. 我想从“ html”元素中获取css缩放。

CSS CSS

html{zoom:1}

JavaScript JavaScript的

function zoomIn(){
altzoom = document.documentElement.style.zoom;
zoomIn = (altzoom + 0.1);
document.documentElement.style.zoom = zoomIn; 
}

HTML HTML

<button onclick= "zoomIn()">Zoom +</button>

If i click on "zoom +" i only get Zoom level of 0.1 so i think i don't get an output from document.documentElement.style.zoom; 如果我单击“ zoom +”,则只能获得0.1的缩放级别,因此我认为我没有从document.documentElement.style.zoom获得输出;

result is: zoom: 0.1; 结果是:缩放:0.1;

There are an special value to get current css zoom lvl? 有一个特殊的值来获取当前的CSS缩放LVL?

I will be happy to fix it. 我将很乐意修复它。

Maybe it's because in your CSS file, the attribute zoom of your element is not set, so the JS can't find a value to put in "altzoom" . 可能是因为未在CSS文件中设置元素的属性zoom,所以JS找不到要放入“ altzoom”的值。 Try to put it in your CSS declaration. 尝试将其放入CSS声明中。

You can't get the zoom level of the style sheet. 您无法获得样式表的缩放级别。 Well there is a way but that would make things overly complicated. 好吧,有办法,但是那会使事情变得过于复杂。 I recommend setting it directly in javascript: 我建议直接在javascript中进行设置:

document.documentElement.style.zoom = 1;

See below, don't forget the parseFloat as it makes sure that the 0.1 is added right. 参见下文,不要忘记parseFloat因为它可以确保正确添加0.1。 If you want control over the value in your back end code (if there is any) you can also set/get this value on/from an attribute or hidden field. 如果要控制后端代码中的值(如果有),还可以在属性或隐藏字段上/从该属性或隐藏字段中设置/获取该值。

Off topic: Don't set the variables in your function as global. 主题外:不要将函数中的变量设置为全局变量。 It doesn't harm now but it's bad practice to have zoomIn also as a function name in global scope. 现在并没有什么坏处,但是将zoomIn也用作全局范围内的函数名称是一个不好的做法。

function zoomIn(){
    var altzoom = parseFloat(document.documentElement.style.zoom);
    var zoomIn = altzoom + 0.1;
    document.documentElement.style.zoom = zoomIn; 
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM