Once more, this time with a solution.. sort of
The issue lies within your
.parallax__layer--back {
-webkit-transform: translateZ(-300px) scale(2);
transform: translateZ(-300px) scale(2);
z-index: 3;
}
.parallax__layer--deep {
-webkit-transform: translateZ(-600px) scale(3);
transform: translateZ(-600px) scale(3);
z-index: 2;
}
The scale() property specifically causes your elements to extend beyond the viewport
Using overflow: hidden does not work well on mobile devices, especially when user-scrollable is set to no/0
Mobile devices tend to ignore or override this command in the meta viewport (reason unknown)
You have three potential solutions:
Rebuild the website and create the effect without using scale(), which should work perfectly
Disable scrolling altogether, but this means restricting movement in both vertical and horizontal directions
<script>
document.body.addEventListener('touchstart', function(e){ e.preventDefault(); });
</script>
Utilize Hammer or TouchSwipe libraries to selectively disable scrolling on certain axes
For example, you can achieve it like this
JSFIDDLE