0

苏,

我正在使用带有 ScrollTrigger 的gsap我的网站上切换暗/亮模式。

我编写了一个函数来检测触发器何时可见:

ScrollTrigger.create({
  trigger: ".js__trigger-dark",
 start: "bottom bottom",
  end: "+=300",
onLeave: self => changeTheme(),
onEnterBack: self => disableTheme(),
});

ScrollTrigger.create({
  trigger: ".js__trigger-light",
  start: 'bottom bottom',
onLeave: self => disableTheme(),
onEnterBack: self => changeTheme(),
});

function changeTheme() {
    jQuery('html').attr('data-theme','dark');
}


function disableTheme() {
    jQuery('html').attr('data-theme','');
}

例如.js__trigger-dark当用户滚动超过第一部分 300px 时切换暗模式,并在用户再次向上滚动到具有类.js__trigger-dark的部分时删除该属性。这工作正常,直到用户到达屏幕底部并删除该属性。

有人可以解释为什么滚动到屏幕底部时它会被删除吗?由于某种原因onEnterBack被调用,我不知道为什么。

问候, b

4

0 回答 0