【发布时间】:2022-02-08 05:54:45
【问题描述】:
<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 所做的。
【问题讨论】:
-
它应该是
documentElement.clientHeight;这是给我的。不知道你是如何获得 4016 的...... -
我在 windows 上的 chrome 和 firefox 上也得到 4016。
-
为什么这被否决了?
-
我自己没有投反对票,所以不能肯定,但我猜是因为其他人无法复制问题?就像我说的,我自己无法复制这个问题;
documentElement.clientHeight为我提供了正确的结果。也许尝试在问题本身中提供minimal, complete, and verifiable example 并确认问题仍然存在? :) -
您能否更新您的页面以同时显示
window.document.body.clientHeight?
标签: javascript css