Do you think you could use the Visual Viewport API for your project? Think again.
It turns out that in many cases, the browser reports a viewport that doesn't at all match what is actually visible on the screen, particularly when scrolling near edges of the page or while the software keyboard is open.
These files can help demonstrate these problems. Try them here: