默认情况下,子元素滚到底继续滚会把滚动事件冒泡给 body(滚动链锁),侧栏弹层滚到底整个页面跟着滚——这是弹层穿透的经典来源。给滚动容器设 overscroll-behavior: contain 即可把滚动锁在容器内。
contain(阻断链锁但仍可有局部回弹)、none(完全禁回弹和链锁)、auto(默认链锁)。none 常用于内嵌地图、画布区域,避免误触发整页橡皮筋。
<style> .sheet { height: 150px; overflow-y: auto; overscroll-behavior: contain; border: 2px solid #4a9eff; } </style> <div class="sheet">滚动到底也不会带动外层页面<br>1<br>2<br>3<br>4<br>5<br>6<br>7</div>