本篇文章我们将实现文章平滑滑入
 ● 其实这原本是用CSS实现的
.section {
  padding: 15rem 3rem;
  border-top: 1px solid #ddd;
  transition: transform 1s, opacity 1s;
}
.section--hidden {
  opacity: 0;
  transform: translateY(8rem);
}
● 我们的目的呢,就是当滚入到某一节中,将section–hidden给去除就可以了
 ● 首先,我们先获取想要的class,存储变量中
const allSections = document.querySelectorAll('.section');
● 之后,我们定义一个函数来处理观察者监听到变化的时候,我们应该干啥,就是移除掉section–hidden这个class
const revealSection = function (entries, observer) {  //定义了一个叫做revealSection的函数,用来处理观察者(IntersectionObserver)监听到的变化。
  const [entry] = entries;  // 从entries数组中取出第一个元素,并赋值给entry变量
  if (!entry.isIntersecting) return;  //如果entry对象的isIntersecting属性为false(即元素没有进入视口),则直接返回,不执行后续操作。这个呢,是防止第一个参数,因为第一个参数会被直接定义,直接出现
  entry.target.classList.remove('section--hidden');  //从entry对象中获取目标元素(被观察的.section元素),然后移除它的section--hidden类名,从而使其显示出来。
  observer.unobserve(entry.target);  //调用观察者对象的unobserve方法停止观察当前的目标元素,因为我们只需要元素进入视口时执行一次操作。
};
● 接着呢,我们需要定义对象来监视页面上所有的section的视口变化
const sectionObserver = new IntersectionObserver(revealSection, {  //创建了一个新的IntersectionObserver对象,命名为sectionObserver,它用来监视页面上所有.section元素的可见性变化。revealSection是上面定义的处理函数,用来处理可见性变化时的具体操作。
  root: null,  //指定根元素为null,即使用整个视窗作为根元素,如果要基于另一个元素的可见性来触发,可以在这里指定。
  threshold: 0.15,  //指定触发回调的阈值,表示当.section元素的可见部分占视口的15%以上时,就触发回调函数
});
● 最后呢,我们对section元素进行迭代处理,默认情况是,这些元素是不可见的
allSections.forEach(function (section) {
  sectionObserver.observe(section);   //将每个.section元素注册到sectionObserver观察者中,以便监视它们的可见性变化。
  section.classList.add('section--hidden');  //给每个.section元素添加section--hidden类名,使它们最初隐藏起来。
});
● 完整代码如下
//揭示内容
const allSections = document.querySelectorAll('.section');
const revealSection = function (entries, observer) {
  const [entry] = entries;
  if (!entry.isIntersecting) return;
  entry.target.classList.remove('section--hidden');
  observer.unobserve(entry.target);
};
const sectionObserver = new IntersectionObserver(revealSection, {
  root: null,
  threshold: 0.15,
});
allSections.forEach(function (section) {
  sectionObserver.observe(section);
  section.classList.add('section--hidden');
});




















