Я надеюсь, что кто-то может помочь мне решить эту проблему программирования, которую у меня есть.Trigger Scroll toTop после window.location.replace JQuery
У меня есть файл footer.php, который ссылается на группу групп bs-tab на другой странице - скажем about.php (для аргументации). Поток задача, которую я ищу, чтобы закончить с помощью JQuery выглядит следующим образом:
(Скажем, мы на index.php)
- Нажмите на ссылку в footer.php на вкладку группы по about.php.
- Ссылка направляется в нужную группу вкладок.
- Загружает страницу и заканчивается прокруткой вверху страницы. Это подражает остальной части поведения загрузки страницы сайта. Вот почему это должно произойти.
Проблема, которую я имею, что, когда на той же странице, что эти вкладки группы находятся (about.php) ссылка работает нормально:
событие щелчка> вкладка группы меняется> активный нав-вкладка состояния переключению > страница прокручивается к началу
Когда на другой странице, однако (скажем, от index.php маршрутизации к about.php), происходит следующее:
нажмите событие> вкладка группы изменений> активные вкладки нав состояние переключит> хэш анкеры в верхней части страницы, но не прокручивается до верхней части страницы.
я запустить быструю проверку и обнаружил, что последовательность, кажется, есть проблемы после того, как перейти от index.php к about.php:
window.location.replace(link_url);
Как я могу завершить последовательность программирования после того, как местоположение окна есть изменилось?
Вот мой код и спасибо заранее:
HTML - найдено в footer.php:
<div class="col-lg-3 col-md-3 col-sm-3 col-xs-6 footer-links">
<h3>Tab Groups</h3>
<ul>
<li class="tab1"><a class="active" href="/link#hashtag1" data-toggle="tab">hashtag1</a></li>
<li class="tab2"><a href="/link#hashtag2" data-toggle="tab">hashtag2</a></li>
<li class="tab3" ><a href="/link#hashtag3" data-toggle="tab">hashtag3</a></li>
</ul>
</div>
JS:
$('.footer-links a').on('click', function(e) {
var link_url = $(this).attr('href');
var link_hash = link_url.substring(link_url.indexOf('#')+1);
var totalLink = window.location.pathname + '#' + link_hash;
if (totalLink !== link_url) {
window.location.replace(link_url);
}
$(this).tab('show');
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var activeTab = this.href.split('#');
$('.nav a').filter('[href="#'+activeTab[1]+'"]').tab('show');
});
//below doesn't happen after the page loads
if($(window).scrollTop() > 0){
$('html, body').animatescroll({scrollSpeed:1000,easing:'easeOutQuint',padding:0});
} else {
$(window).scrollTop(0);
}
});
привет, спасибо за это, хорошее предложение. Я посмотрел на это и обнаружил, что использование этого процесса устраняет одну проблему и создает другое: D Что я вижу с этим скриптом, добавленным в, является то, что hashtag/link # hashtag имеет к нему «& top = true» и таким образом, группа вкладок теперь не маршрутизирует, а теперь попадает в верхнюю часть страницы. : D Я что-то пропустил в вашем комментарии - или нам тоже нужно изменить HTML?Спасибо за помощь. – Ben
Вам нужна ваша ссылка в формате http: // host? Top = true # hashtag –
Привет, спасибо, что вернусь к вам. Я отформатировал свои ссылки в footer.php на этом, когда тестировал, и обнаружил, что получил тот же результат, однако результат URL был следующим: host/page.php? Top = true # hashtag & top = true – Ben