Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果scrollTop大于该值,则只执行一次_Javascript_Jquery - Fatal编程技术网

Javascript 如果scrollTop大于该值,则只执行一次

Javascript 如果scrollTop大于该值,则只执行一次,javascript,jquery,Javascript,Jquery,当用户从顶部滚动超过10px时,我想劫持他们的滚动并将其向下滚动到某个div。在这种情况发生一次后,我想释放滚动以自由滚动到任何地方。我该怎么做 我当前的代码可以正常工作,但不允许用户在初始滚动后自由滚动: $(window).scroll(function() { //if I scroll more than 1000px... if($(window).scrollTop() > 10){ $('html,body').animate({scrol

当用户从顶部滚动超过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; 
        });
    }
});
尝试:


h=2是干什么的?这很有效。如果用户返回到页面的最顶端,我如何将该值重置回false?谢谢我正在尝试此操作,但它似乎不会使动画再次运行:“if($(document).scrollTop()<10){var scrolled=false;}”尝试了此操作。它又在运行滚动动画了。下面是你建议的代码。再次-它第一次工作,但似乎没有将变量重置回false。对不起,我忘记了如果($(window.scrollTop()==0),我已经更新了代码,现在它可以在@user1389082工作了
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;
    }
});