如果滚动仅到达某个点一次,则触发功能。不是每次

use*_*784 5 javascript jquery

我想检查我的用户是否到达我页面中的某个点。所以我创建了以下JS代码:

$(document).on('scroll', function() {
    if($(this).scrollTop()>=$('#page2').position().top){

    alert("trigger");
    }
})
Run Code Online (Sandbox Code Playgroud)

它检查用户是否到达我的 id="page2"。但是我希望它只触发一次,无论用户是否向上和向下返回,现在每次 page2.position().top = scrollTop 都会触发它。

我怎样才能做到这一点 ?

Sat*_*pal 4

您可以在执行所需语句后使用event.namespaceoff()取消绑定事件处理程序。

$(document).on('scroll.something', function() {
    if ($(this).scrollTop() >= $('#page2').position().top) {
        //Do something

        //Unbind the event
        $(document).off('scroll.something')
    }
})
Run Code Online (Sandbox Code Playgroud)