【问题标题】:calling a function inside an intersectionObserver在 intersectionObserver 中调用一个函数
【发布时间】:2022-11-22 19:40:19
【问题描述】:

我只想将其称为 IntersectionObserver 中的函数:

我希望它可重复使用且更清洁

numbers.forEach((number, index) => {
    intervals[index] = setInterval(() => {
        if(counters[index] === parseInt(number.dataset.num)){
            clearInterval(counters[index]);
        } else{
            counters[index] += 1;
            number.textContent = counters[index] + "%";
            svgEl[index].style.strokeDashoffset = Math.floor(472 - 440 * parseFloat(number.dataset.num / 100));
        }
    }, 20);
 });
}

我的 IntersectionObserver

const animate = new IntersectionObserver(function (entries, animate) {
  entries.forEach(entry => {
    if(!entry.isIntersecting) {
   //function
    }
  });
});
animate.observe(test);

【问题讨论】:

  • 什么功能?第一个代码?好吧,第一个代码似乎取决于numbersintervalscounterssvgEl——不管这些是什么——所以,不知道如何提供帮助

标签: javascript html coding-style intersection-observer


【解决方案1】:

我不明白这一点!

将您的函数包含在函数名称中 function... 或 const... 并在路口观察者中调用它

function numbersCount(numbers) {
  numbers.forEach((number, index) => {
    intervals[index] = setInterval(() => {
        if(counters[index] === parseInt(number.dataset.num)){
            clearInterval(counters[index]);
        } else{
            counters[index] += 1;
            number.textContent = counters[index] + "%";
            svgEl[index].style.strokeDashoffset = Math.floor(472 - 440 * parseFloat(number.dataset.num / 100));
        }
    }, 20);
   });
  }
}

现在这意味着“数字”在某处是已知的! 从你展示的内容,我猜不出来

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 2019-09-17
    • 2013-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    相关资源
    最近更新 更多