锚动画滚动不准确

时间:2016-02-09 06:01:20

标签: jquery scroll anchor

我碰巧放置在战略位置,以访问锚点滚动浏览网站。它做了一个动画jquery,但大部分时间或不足或通过这个地方,不知道,因为它在网站上不是100%准确,可能会发生什么?

jquery的:

$(function(){

     $('a[href*=#]').click(function() {

     if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'')
         && location.hostname == this.hostname) {

             var $target = $(this.hash);

             $target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');

             if ($target.length) {

                 var targetOffset = $target.offset().top;

                 $('html,body').animate({scrollTop: targetOffset}, 1000);

                 return false;

            }

       }

   });

});

按钮:

<a id="ancla-1" href="#ancla-1">

<a name="ancla-1"></a>

1 个答案:

答案 0 :(得分:0)

最后我发现了问题,我把它放在这里以防万一有人可以为他赢得解决方案。

页面加载速度太快,没有考虑使用标题的空间。解决方案是应用一个计时器,该计时器需要一秒钟来激活页面的滚动。

也许它不是一个非常优雅的解决方案,但这种方式永远不会失败。

$(document).ready(function() {

setTimeout(function () {
    var anchor = window.location.hash.substring(1);

if(anchor!="" || anchor!="AB"){

    var newAnchor= "#anchor-" +anchor;

    $(newAnchor).trigger("click");

}

    }, 1000);


});