Перейти к определенной части HTML-страницы по внешней ссылке не работает

Я создал страницу с внутренними переходами к определенному разделу внутри div с указанным идентификатором. Работает нормально (внутри).

localhost/index.html#career-div
localhost/index.html#about-div

У меня есть элементы с идентификаторами career-div и about-div.

Когда я попытался перейти с другой страницы (скажем, contact.html) на index.html с хэштегом, он не перешел к определенному разделу!!

<a href="index.html#career-div">Career</a>

<div class="container">
  <div id="career-div" class="content-block-div">
  </div>
</div>

Приведенный выше код просто загружает страницу index как обычно, но не переходит к указанному идентификатору. Я также попробовал атрибут имени, но это не сработало!

Если я нажму клавишу ввода в адресной строке, страница подпрыгнет, как и должна! Я хочу, чтобы это плавно прокручивалось после переключения страниц.

Функция, которую я использую для плавной прокрутки к цели и управлению классом кнопок, находится здесь:

 $(function(){
   $('a[href*=#]:not([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) {
           $('html,body').animate({
             scrollTop: target.offset().top
           }, 1000);

           if(this.hash == '#content-spacer')
           {
             $('#button-home').addClass('active');
             $('#button-about').removeClass('active');
             $('#button-services').removeClass('active');
             $('#button-careers').removeClass('active');
             $('#button-contact').removeClass('active');
           }
           else if(this.hash == '#about-spacer')
           {
             $('#button-about').addClass('active');
             $('#button-home').removeClass('active');
             $('#button-services').removeClass('active');
             $('#button-careers').removeClass('active');
             $('#button-contact').removeClass('active');
           }
           else if(this.hash == '#services-spacer')
           {
             $('#button-services').addClass('active');
             $('#button-about').removeClass('active');
             $('#button-home').removeClass('active');
             $('#button-careers').removeClass('active');
             $('#button-contact').removeClass('active');
           }
           else if(this.hash == '#career-spacer')
           {
             $('#button-careers').addClass('active');
             $('#button-services').removeClass('active');
             $('#button-about').removeClass('active');
             $('#button-home').removeClass('active');
             $('#button-contact').removeClass('active');
           }
           else if(this.hash == '#contact-spacer')
           {
             $('#button-contact').addClass('active');
             $('#button-careers').removeClass('active');
             $('#button-services').removeClass('active');
             $('#button-about').removeClass('active');
             $('#button-home').removeClass('active');
           }
           return false;
       }
     } 
  });
});

person Shan    schedule 29.04.2015    source источник
comment
Как вы делали внутренние прыжки? Использовали ли вы якорные теги?   -  person codyogden    schedule 29.04.2015
comment
да, я использую теги привязки, как указано выше, и я использую jquery для плавной прокрутки к цели ::: $('a[href*=#]:not([href=#])').click(function () { . . . . .. }   -  person Shan    schedule 29.04.2015
comment
Вам нужно опубликовать jQuery, имя плагина и любой соответствующий Javascript, который вы используете. Страница перейдет на <a name="career-div"></a> сразу после загрузки. Пример (щелкните ссылку на этой странице): cjo.me/so/29950391/index.html   -  person codyogden    schedule 29.04.2015
comment
Вопрос @codyogden обновлен, я вызываю внутренние ссылки как: ‹a href=#career-div›Career‹/a›, все работает нормально, но в то же время, когда я меняю внутреннюю ссылку на ‹a href=index.html#career -div›career‹/a› не работает!   -  person Shan    schedule 29.04.2015
comment
Каков желаемый эффект? Вы хотите, чтобы он загружал index.html, а затем плавно прокручивал? Или просто загрузите, как в моем примере, где первое, что вы видите, это раздел, на который ссылается?   -  person codyogden    schedule 29.04.2015
comment
я бы предпочел плавную прокрутку, если это возможно   -  person Shan    schedule 29.04.2015
comment
Использование $('#button-careers, #button-services, #button-about, #button-home').removeClass('active'); сделает ваш скрипт намного чище.   -  person Dom    schedule 30.04.2015
comment
Почему бы вам не взять что-то вроде этого и убрать контроль браузера, но обернуть вызов собственной функции в window.load. Остановит переход и обеспечит плавную прокрутку во всех случаях, включая index.html#something URI.   -  person TechnicalChaos    schedule 30.04.2015
comment
@TechnicalChaos сработало!   -  person Shan    schedule 30.04.2015
comment
Рад слышать это! Удачи в остальной части проекта :)   -  person TechnicalChaos    schedule 30.04.2015
comment
Вы думали об использовании fullpage.js? Жить легко :)   -  person Alvaro    schedule 30.04.2015