每个循环和 $(this).find 的 ScrollMagic

ScrollMagic with each loop and $(this).find

我正在尝试使用 ScrollMagic 为我的 h1 标签内的几个跨度元素制作动画。

目标是遍历每个 h1(第一个除外),找到带有 .msk classes 的跨度,并向其子级添加另一个 class(.is-visible)。

我已经设置了一个 each 循环,但我不知道如何将 $(this) 与另一个选择器正确组合。

我的代码如下所示:

$('h1:not(:first)').each(function() {

 var msk = $(this).find('.msk span');
 console.log(msk);

 var h1Scene = new ScrollMagic.Scene({
  triggerElement: this,
  triggerHook: 0.7,
  reverse: false,
 })
 .addIndicators({
   name: "H1"
 })
 .setClassToggle(msk, 'is-visible')
 .addTo(controller)
});

我已经做了一些研究,但我仍然无法弄清楚它是如何工作的。

根据文档,setClassToggle 函数的第一个参数应该是 一个针对一个或多个元素的选择器或一个应该被修改的 DOM 对象。

但是当您调用 var msk = $(this).find('.msk span'); 时,您将在 msk 变量中存储 jQuery 对象。所以这应该是一个无效调用

.setClassToggle(msk, 'is-visible')

尝试调用它

.setClassToggle(msk[0], 'is-visible')

它将允许您访问 jQuery 选择的纯 DOM 元素。