单击时将页面滚动 100vh(包括 mobile/safari 导航元素)

Scroll page by 100vh (including mobile/safari nav elements) on click

我们为我们的一位客户制作了点击率投资组合。通过禁用页面上的滚动并在点击时立即将页面向下移动 100vh——我们创造了我们看到一个新页面的错觉,而没有实际加载它。它在桌面上运行良好。 See it here.这里是用来实现的javascript:

<!-- Click area and on-click action -->  
<div class="click-next" onclick="scrollWin(0, window.innerHeight)"></div>
<div class="click-back" onclick="scrollWin(0, window.innerHeight / -1)"></div>


<script>

// Scroll function
function scrollWin(x, y) {
  window.scrollBy(x, y);
}

</script>

但是在移动设备上,我 运行 遇到了问题。首次进入页面时,可以看到 Safari 搜索栏。单击时,页面将向下滚动整个高度,不包括搜索栏的高度并偏移整个内容:

如何确保脚本以 100vh 的速度滚动,而忽略本机移动浏览器元素? (无论如何我都不是Javascript大师。它在Webflow中制作的网站)。

试试这个代码

function scrollYByVh() {
  const clientHeight = document.body.clientHeight;
  window.scrollBy(0, clientHeight);
}