
IntersectionObserver的rootMargin属性使用详解及疑难解答
使用IntersectionObserver实现图片懒加载时,rootMargin属性常常被用来调整触发加载的时机。然而,许多开发者在将root设置为null(即浏览器视窗)时,发现rootMargin设置无效,导致图片提前加载。
这其中的关键在于rootMargin与CSS的margin属性的差异。两者方向一致,但正负值含义相反。rootMargin: "0px 50px"表示水平方向(左右)视口扩大50px,垂直方向(上下)视口不变。若要扩大垂直方向视口50px,则应使用rootMargin: "50px 0px"。
为了避免因root设置为视窗而产生的问题,建议将root设置为元素的父级可滚动容器。这样,只有当目标元素滚动进入父级容器的视口一定距离(由rootMargin指定)内时,才会触发加载事件,从而实现更精确的懒加载效果。










