Scroll在SetTimeout()内部没有工作,延迟

时间:2016-02-20 07:08:06

标签: javascript jquery

我将元素片段滚动为:

$('html,body').animate({
     scrollTop: $(window.location.hash).offset().top
},1000);  

这是完美的工作,但我需要在进入页面几秒后运行它(有延迟),所以我使用setTimeout()得到这个但现在页面跳转到部分(哈希)而不滚动或提示任何错误消息。

setTimeout(function(){ 
  $('html,body').animate({
     scrollTop: $(window.location.hash).offset().top
  },1000);   
}, 2000);
你可以告诉我我做错了什么,为什么这不能延迟?!

1 个答案:

答案 0 :(得分:0)

尝试:

  $('html,body').delay( 2000 ).animate({
     scrollTop: $(window.location.hash).offset().top
  },1000);

其他选项是:

window.setTimeout(function(){
      $('html,body').animate({
         scrollTop: $(window.location.hash).offset().top
      },1000);
});