Safari on IOS 15 has a new 'feature'. It hides address bar when you swipe down, and when you swipe up it shows it again. In this repo you can find my dirty workaround, which is solving this issue.
Personally I've tested this on iPhone 11 Pro and iPhone 8+, iOS 15.1
You need to use viewport meta and the following structure:
<head>
<meta name="viewport" content="width=device-width, height=device-height"/>
</head>
<body>
<div class="outer-content">
<div id="content">
<!-- Scrollable content here -->
</div>
</div>
</body>
And the following css for the outer container:
.outer-content {
height: 100vh;
position:fixed;
overflow-y:scroll;
}
How it looks like: