2016-11-17 79 views
0

动画不起作用,你能告诉我我做错了什么吗?jQuery动画滚动到锚点

<a id="pediatric-primary-health-care" href="#" class="anchor">&nbsp;</a> 

<script> 
    jQuery(document).ready(function() { 
     function scrollToAnchor(aid){ 
      var aTag = jQuery("a[name='"+ aid +"']"); 
      jQuery('html,body').animate({ 
       scrollTop: aTag.offset().top 
      }, 'slow'); 
     } 
     jQuery("a").click(function() { 
      var href = jQuery(this).attr('href').replace('#', '') 
      scrollToAnchor(href); 
     }); 
    }); 
</script> 
+1

[简单的jQuery滚动的可能重复锚向上或向下的网页...? ](http://stackoverflow.com/questions/8579643/simple-jquery-scroll-to-anchor-up-or-down-the-page) –

+1

@JamesHill这是一个很大的语法错误,OP想知道什么是问题。不是OP要求提供代码。 –

+0

您发布的代码现在应该可以正常工作。 –

回答

0

JavaScript本身的语法是错误的。您有:

jQuery('html,body').animate({ 
    jQuery('html,body').animate({scrollTop: aTag.offset().top},'slow'); 

虽然animate功能只是希望用CSS属性的对象。摆脱第一个。至少现在人们应该明白缩进代码的重要性。

var aTag = jQuery("a[name='" + aid + "']"); 
jQuery('html,body').animate({ 
    scrollTop: aTag.offset().top 
}, 'slow'); 

此外,为了不在URL的末尾得到#,你可以使用event.preventDefault()

jQuery("a").click(function(e) { 
    e.preventDefault(); 
    scrollToAnchor($(this)); 
}); 
+0

谢谢!我是一个JavaScript的初学者...这是我现在的代码, \t ...但它不工作。该#号应停留在URL中,所以这没关系。只有动画是问题。 – Colette

+0

@ColetteGüntensperger我不是一个JavaScript解释器。我无法理解你在评论中写的东西。请编辑您的原始问题并添加它。 ':)' –

+0

@ColetteGüntensperger请[**编辑您的问题**](http://stackoverflow.com/posts/40652063/edit)并添加您的新脚本。 ':'''等着你。 –