<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 在移动设备上故意比可见视口高,这样浏览器栏就可以在不改变 vh 的情况下改变大小。所以我想要屏幕的大小而不考虑浏览器栏,这就是 vh 所做的。
原文由 Curtis 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以使用一行代码计算以像素为单位的 vh:
所以你可以有一个功能: