2015-05-30 3 views
1

У меня возникли проблемы с получением моего скрипта для каких-либо действий прокрутки по какой-либо причине. Я использую оператор switch, чтобы определить, какая ссылка была нажата (ссылка находится на моем навигаторе, поэтому вы переходите с другой страницы целиком), затем я хочу, чтобы страница прокручивалась вверху страницы (и, в конечном счете, прокручивалась плавно вниз на якорь снова). По какой-то причине моя консольная запись журнала запускается, но страница не прокручивается вверх. Когда я набираю window.scrollTo (0, 0); в консоли, хотя страница прокручивается ... вот мой скрипт, любая помощь приветствуется.Использование оператора switch для перехода к привязке с другой страницы

var URL = window.location.href; 
var baseURL = window.location.protocol+'//'+window.location.host+window.location.pathname; 

switch(URL) { 
    case baseURL+'#skills': 
     window.scrollTo(0, 0); 
     console.log('you are on skills');  
     break; 
    case baseURL+'#experience': 
     window.scrollTo(0, 0); 
     console.log('you are on expereince');  
     break; 
    case baseURL+'#works': 
     window.scrollTo(0, 0); 
     console.log('you are on works');   
     break; 
} 
+0

не могли бы вы показать остальную часть кода? –

ответ

0

На самом деле я получил ответ, вместо применения имени моих якорных ссылок (так что браузер переходит непосредственно к ссылке) Я просто применил класс к каждому из ссылок и прокручивать их, как только страницы был загружен.

$(window).on("load", function() { 
    urlHash = window.location.href.split("#")[1]; 
    $('html,body').animate({ 
     scrollTop: $('.' + urlHash).offset().top 
    }, 1000); 
}); 

Где мои ссылки будут выглядеть так на стороне HTML.

<a class="works">Portfolio</a> 
+0

Я думаю, вы можете использовать window.location.hash вместо того, чтобы выполнять разделение строк. – dman2306

Смежные вопросы