javascript - 使用 JS 函数更改无单位 CSS 值
问题描述
我想用函数修改 div 的无单位缩放值。我知道我可以用一堆 else if 语句来做到这一点,但我想要很多缩放级别,所以如果 div 处于完全缩放状态,我希望函数看起来,如果不是,则将缩放值加倍。使用下面的函数,我试图从当前缩放值设置一个变量,将其更改为整数,如果整数为 8,则保持缩放为 8,如果整数是其他值,则将该数字加倍,然后转换回字符串并设置为缩放值。
<script>
function zoomIn() {
var zoomNow = (document.getElementById('mainVP').style.zoom);
zoomNow = Number(zoomNow);
if (zoomNow == 8) {
document.getElementById('mainVP').style.zoom = 8;
} else {
zoomNow = zoomNow*2;
toString(zoomNow);
document.getElementById('mainVP').style.zoom = zoomNow;
}
}</script>
解决方案
这应该给你你正在寻找的东西:
function zoomIn(el)
{
// Current zoom level as a number
const zLevel = +(el.style.zoom);
// If current zoom level is equal or grater than 8 then set it to 8
// otherwise double it
el.style.zoom = (zLevel >= 8) ? 8 : (zLevel * 2);
}
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator
查看该链接以了解有关“?(三元)”运算符的更多信息。
你可以像这样使用它:
<!-- inline -->
<button id="zoomIn" onclick="zoomIn(this)">Zoom In</button>
或者
// Zoomable element
const zoomable = document.getElementById('mainVP');
// Zoom button: this can be the zoomable element itself or any other element
document.getElementById('zoomIn').onclick = e => {
zoomIn(zoomable);
};
推荐阅读
- python-3.x - 没有名为 TKCALENDAR 的模块
- elasticsearch - 如何让 fluentd 更快地将日志发送到 Elasticsearch?
- angular - 对子组件属性的数据使用切片管道会导致对@Input set 方法的无限调用
- flutter - 如何在颤动的扩展磁贴列表中包含单选按钮
- javascript - 如何将 React 类组件转换为函数组件
- azure-machine-learning-service - ModuleNotFoundError:Azure ML 管道中没有名为“keras”的模块
- asp.net-core - 如何在 linux 上生成合理大小的 .NET Core 进程的内存转储文件?
- codeigniter - 饼图chart.js未满
- typescript - 从类型中获取泛型类型
- elasticsearch - Kibana:聚合“日期直方图”无法正常工作