JavaScript 计算视口(viewport)宽度/高度

标签 javascript css viewport

我试图在我的移动 Webview 中设置一个响应点并这样做:

var w = window.innerWidth-40;
var h = window.innerHeight-100;

目前效果很好。但值 -40 和 -100 不在视口(viewport)缩放高度和宽度中。

当我这样做时:

var w = window.innerWidth-40vw;
var h = window.innerHeight-100vh;

因为它应该保持响应并相对于视口(viewport) - JS 不再工作。 我认为 vh 和 vw 只适用于 CSS? 我怎样才能在 JS 中实现这一点?

请不要使用 JQuery 解决方案 - 只有 JS!

谢谢

最佳答案

基于 this site您可以使用以下实用程序函数来计算您想要的值作为屏幕宽度或高度百分比的函数:

function vh(percent) {
  var h = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
  return (percent * h) / 100;
}

function vw(percent) {
  var w = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);
  return (percent * w) / 100;
}

function vmin(percent) {
  return Math.min(vh(percent), vw(percent));
}

function vmax(percent) {
  return Math.max(vh(percent), vw(percent));
}

console.info(vh(20), Math.max(document.documentElement.clientHeight, window.innerHeight || 0));
console.info(vw(30), Math.max(document.documentElement.clientWidth, window.innerWidth || 0));
console.info(vmin(20));
console.info(vmax(20));

我用了this我的代码中令人难以置信的问题!

关于JavaScript 计算视口(viewport)宽度/高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44109314/

相关文章:

javascript - 如何获取拖动的div框的数据集属性?

javascript - 在 extjs 中使用 Ext.get() 获取类

html - 在 Chrome 中添加到最后一个对齐的内联 block 元素的额外空间

html - 一页中的元素并设置一种字体大小但显示不同?

java - 如何在渲染 box2Dlights 时调整视口(viewport)?

javascript - 输入从日期和截止日期时,在 JavaScript 中计算年月日期间

javascript - 然后在 nativescript 中获取后就无法工作

javascript - 将鼠标悬停在上下文菜单的 li 元素上时,如何更改它的颜色

javascript - 在 Div 中禁用滚动

javascript - 如何在 100vh 滚动后切换类