参考了这篇文章:https://bbs.csdn.net/topics/392438851
里面提到一个原因:
display=none会造成页面重新渲染,当display=block时页面会重新加载,scrollTop就一直为0
其实你完全可以使用visibility=visible|hidden或者opacity=0|1来切换iframe就没问题了。
后面通过visibility属性控制,最开始不行,后面通过AI解答发现问题:
当使用 visibility 属性时,元素只是在视觉上显示或隐藏,但它仍然会占据页面空间。如果 iframe 的父元素的布局受到 iframe 大小的影响,即使 iframe 被设置为 visibility: hidden,它所占据的空间仍然存在,可能给人一种 iframe 没有被隐藏的错觉。