自动滚动Jquery

时间:2016-02-02 13:01:57

标签: javascript jquery

一旦用户滚动1px,我试图自动滚动750px  ,但达到750,我会滚动回正常,只有当我在页面顶部时,效果才会重新开始。

jQuery.noConflict()(function ($){
   $(window).scroll(function (event) {
     var body = $("html, body");
     var scroll = $(window).scrollTop();
     body.stop().animate({scrollTop:750}, '1500');  
   });
});

这是我的代码,但继续自动滚动到750px我怎么能停止事件并且只有在身体的顶部再次启动它?

2 个答案:

答案 0 :(得分:2)

你只需要在动画调用周围添加一个if。

if(scroll == 0){
    body.stop().animate({scrollTop:750}, '1500');
}

否则每次滚动它都会调用animate并返回750px位置

答案 1 :(得分:0)

据我了解,您希望仅在到达页面顶部时才触发滚动事件。因此,您可以在body元素上切换类:

$(window).on('scroll', function(event) {
  var scroll = $(window).scrollTop();
  var $body = $('body');
  if ($body.hasClass('onTop')) {
    $("html, body").animate({
      scrollTop: 750
    }, '1500');
  }
  $body.toggleClass('onTop', scroll === 0);
}).scroll(); // trigger it on load or set it directly in HTML markup: <body class="onTop">