DOM

overflow & scrollTop & margin

overflow hidden 可以阻止浏览器的滚动条出现,也可以阻止 用户操作(滚轮、触摸板等) 的滚动行为无法生效。

但如果此时子元素中有某个元素虽然无高度设置,但存在上或下的 margin,导致子内容块溢出父元素。当前元素实际可以通过操作 js 进行滚动。
image.png
其实从 scrollHeight 也可以看出,scrollHeight > Height 及表示可滚动。且如果出现了滚动,从用户侧,是无法让这类操作复位的。

所以 overflow hidden 只是一个阻止用户及滚动条展示的操作,但并不能真正阻止滚动。
包括浏览器原生触发滚动的操作(e.g. InToView),组件,操作库都有可能触发滚动生效,导致意想不到的滚动发生。