gpt4 book ai didi

Javascript 以像素为单位获取 100vh

转载 作者:可可西里 更新时间:2023-11-01 02:43:01 37 4
gpt4 key购买 nike

<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
<div style='height:4000px;background:#EEE;'>
<div id=vh style='height:100vh;background:#AFB'>
100vh
<br>
<br>
<br>
<button onclick='show()' style='font-size:55px'>
Show
</button>
</div>
more stuff
</div>
<script>
var vh=document.getElementById('vh')
function show()
{
alert('window.innerHeight='+window.innerHeight
+', window.outerHeight='+window.outerHeight
+', screen.height='+screen.height
+', document.documentElement.clientHeight='+document.documentElement.clientHeight
+', vh.clientHeight='+vh.clientHeight)
}
</script>
</body>
</html>

http://curtastic.com/testvh.html

在我的 iPad 上,100vh 的 div 大小是 1256 像素。 (如果你最近的滚动是向上的)

window.innerHeight 为 1217。

screen.height 为 1024。

window.outerHeight 为 0。

documentElement.clientHeight 为 4016。

在 javascript 中有什么方法可以得到这个数字 1256 吗?除了制作一个 div 并将其设置为 height:100vh 然后检查其 clientHeight 之外?

我的字体大小也设置为 10vh。以像素为单位是多少?

我没有使用 jQuery。

我知道 100vh 在移动设备上故意比可见视口(viewport)高,这样浏览器栏就可以在不改变 vh 的情况下改变大小。所以我想要屏幕的大小而不考虑浏览器栏,这就是 vh 所做的。

enter image description here

最佳答案

你可以用一行代码计算以像素为单位的vh:

let _1vh = Math.round(window.innerHeight / 100)

所以你可以为它设置一个函数:

function vhToPixels (vh) {
return Math.round(window.innerHeight / (100 / vh)) + 'px';
}

关于Javascript 以像素为单位获取 100vh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49268659/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com