Прокрутите ссылку с другой страницы, чтобы загрузить в неправильную позицию в Chrome

Я пытаюсь сделать прокрутку для ссылки с другой 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)

Любая помощь будет принята с благодарностью - спасибо за чтение!

РЕДАКТИРОВАТЬ

Когда я добавляю задержку 2000 мс в setTimeout, она работает, но воспринимаемая производительность ужасна.

Это также только кажется проблемой в Chrome.

Я попытался добавить высоты CSS к каждому элементу контейнера, чтобы увидеть, предоставляет ли медленно загружаемый DOM неправильное значение смещения, чтобы ссылка привязки прокручивалась вниз; кажется, не имеет никакого эффекта, хотя.

0 ответов

Другие вопросы по тегам