1

我正在尝试滚动以从另一个 html 页面链接;当您单击该链接时,页面将更改(如果适用)并从顶部滚动到 ID 部分。

奇怪的是,它在我的本地机器上运行良好,但一旦被推送就不能正常运行。

大多数网站都在一个页面上,但是当您访问造型师的“查看简历”页面然后使用其中一个导航链接时,您会看到问题。

转到此页面,然后单击任何导航链接以查看... http://davehudson.me/livegallery/v8/stylist-cheryl.html

将其与您在主页上使用导航链接时的工作方式进行对比...... http://davehudson.me/livegallery/v8/

这是我在头部滚动到功能的 JS

(function($){


var jump=function(e)
{
   if (e){
       e.preventDefault();
       var target = $(this).attr("href");
   }else{
       var target = location.hash;
   }

   $('html,body').animate(
   {
       scrollTop: $(target).offset().top - 100
   },1000,function()
   {
       location.hash = target;
   });

}

$('html, body').hide();

$(document).ready(function()
{
    $('a[href^=#]').bind("click", jump);

    if (location.hash){
        setTimeout(function(){
            $('html, body').scrollTop(0).show()
            jump()
        }, 0);
    }else{
      $('html, body').show()
    }
});

})(jQuery)

任何帮助将不胜感激 - 感谢您的阅读!

编辑

当我向 setTimeout 添加 2000 毫秒延迟时,它可以工作,但感知到的性能很糟糕。

这似乎也只是 Chrome 中的一个问题。

我尝试将 CSS 高度添加到每个容器 div 以查看缓慢加载的 DOM 是否提供了错误的偏移值,以便锚链接向下滚动到;不过似乎没有任何效果。

4

0 回答 0