将 CSS3 动画合并到网页中时,用户可能会遇到动画过早触发或在页面中不可见的问题。视口。为了解决这个问题,IntersectionObserver API 提供了一个解决方案,允许元素仅在进入用户视口时进行动画处理。
IntersectionObserver API 使开发人员能够观察交集的变化具有祖先元素或文档视口的目标元素。此 API 提供了当目标元素可见或不可见时调用的回调函数。
要实现此功能:
const inViewport = (entries, observer) => { entries.forEach(entry => { entry.target.classList.toggle("is-inViewport", entry.isIntersecting); }); }; const observer = new IntersectionObserver(inViewport);
document.querySelectorAll('[data-inviewport]').forEach(el => { observer.observe(el, obsOptions); });
[data-inviewport="fade-in"] { transition: 2s; opacity: 0; } [data-inviewport="fade-in"].is-inViewport { opacity: 1; }
通过执行以下步骤,可以根据元素在视口中的可见性动态触发动画,从而在页面滚动期间提供更直观、更有吸引力的用户体验。
以上是IntersectionObserver 如何增强页面滚动的 CSS3 动画?的详细内容。更多信息请关注PHP中文网其他相关文章!