overscroll-behavior: none
on scrollable containers (not body
) to prevent bounce while keeping pull-to-refresh.To disable scroll bouncing (rubber banding) in Webflow while still keeping pull-to-refresh on mobile browsers, you need to apply the correct CSS strategy that targets only body scroll elasticity—without overriding native browser behavior like pull-to-refresh.
overscroll-behavior
StrategicallyYou can limit where bouncing happens using overscroll-behavior
, but note that this won’t affect Safari iOS, which still does bounce unless you hack around with a fixed container (but that breaks pull-to-refresh).
Apply the following CSS in your Webflow Page Settings → Custom Code → Inside <style>
tags in the Head:
body, html { overscroll-behavior-y: contain; /* limits bounce at top/bottom, but disables pull-to-refresh on Android */}
But since this disables pull-to-refresh on Android, instead target only elements other than the body:
Keep scroll containers from bouncing while leaving the body scroll behavior untouched:
.scroll-container { overscroll-behavior: none;}
overflow: auto
or scroll behavior.body
and html
unchanged, so native pull-to-refresh still works.body
without also using methods that kill pull-to-refresh (like overflow: hidden
on html
, or breaking into fixed containers).overflow: hidden
on html
or body
—this disables scrolling and also kills pull-to-refresh.touch-action: none
, as that disables key gestures on mobile.overflow: scroll
and height: 100vh
—this disables native mechanisms and worsens performance/accessibility.To limit scroll bounce in Webflow:
overscroll-behavior: none
only on scrollable containers, not the body
, to prevent container bounce while preserving native behavior.