Javascript 如果scrollTop大于该值,则只执行一次
当用户从顶部滚动超过10px时,我想劫持他们的滚动并将其向下滚动到某个div。在这种情况发生一次后,我想释放滚动以自由滚动到任何地方。我该怎么做 我当前的代码可以正常工作,但不允许用户在初始滚动后自由滚动: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
$(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;
}
});