javascript - 如果scrollTop大于值,则仅执行一次

标签 javascript jquery

当用户从顶部滚动超过 10px 时,我想劫持他们的滚动并将其向下滚动到某个 div。这种情况发生一次后,我想释放滚动条,以便可以自由滚动到任何地方。我该怎么做?

我当前的代码可以工作,但它不会让用户在初始滚动后自由滚动:

$(window).scroll(function() {

    //if I scroll more than 1000px...
    if($(window).scrollTop() > 10){
         $('html,body').animate({scrollTop : $('#main').offset().top}, 900, function(){
            h = 2; 
        });
    }
});

最佳答案

尝试:

var scrolled = false;

$(window).scroll(function() {

    //if I scroll more than 1000px...
    if($(window).scrollTop() > 10 && scrolled == false){
         $('html,body').animate({scrollTop : $('#main').offset().top}, 900, function(){
            h = 2; 
        });
      scrolled = true;
    } else if($(window).scrollTop() == 0) {
      scrolled = false;
    }
});

关于javascript - 如果scrollTop大于值,则仅执行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33620031/

相关文章:

javascript - 如何以 Javascript 或 HTML 格式保存文章 ID?

javascript - jQuery 验证插件条件检查输入是否有值或选择下拉列表

javascript - 捕获最大化的视口(viewport)宽度

javascript - 使用 JavaScript 在 IE9 中获取数据列表选项

javascript - 如何保持 onmouseover 功能直到鼠标悬停在其他内容上

javascript - 我的 js 函数无法同时处理 2 个调用

Javascript 如何访问加载了 jQuery 的 HTML 文件中的元素

jquery - ASP.NET Core 1 中的 Ajax 数据发布不传递值

jquery - 有没有更好的方法在 Twitter Bootstrap 中显示事件选项卡?

javascript - 触摸绘制事件和 HTML5 Canvas