窗口中的运行函数在jQuery中滚动一次

时间:2016-09-10 02:13:56

标签: javascript jquery scroll window

我正在创建我的投资组合,当我进入“我的技能”部分时,我正试图让我的技能栏加载。我希望他们只做一次,无论是有人滚动到这个部分还是直接从导航转到它。这是我的代码:

var skills = $('#mySkills');
  var skillsPositionTop = skills.position().top;
 $(window).on("resize scroll", function (){
      if (pageYOffset<skillsPositionTop-20 && pageYOffset>skillsPositionTop-80){
    console.log ("here is my loading script");

}     });

当我使用one而不是on时,它不起作用,当我在if语句中使用one在窗口上再创建一个函数时,它不起作用。 我试图用returnreturn false退出函数,在这里,在堆栈溢出时我发现了一些关于flag的东西,我没有完全理解但我尝试了不同的组合。 有人可以帮我吗?我已经看到有这种类型的效果库,但没有必要安装任何一件事...

编辑。 Console.log代表我的加载代码。

1 个答案:

答案 0 :(得分:1)

您可以在.on()resizescroll个事件设置命名空间,在.off()语句中使用if来删除命名空间事件。

var skills = $('#mySkills');
var skillsPositionTop = skills.position().top;
$(window).on("resize.once scroll.once", function (){
  if (pageYOffset<skillsPositionTop-20 && pageYOffset>skillsPositionTop-80) {
    $(this).off("resize.once").off("scroll.once");
    console.log ("here is my loading script");
  }
});