У меня есть веб-сайт Wordpress с пользовательскими пунктами меню:
- About has link
#about
- Города имеют ссылку
#cities
- Практическая информация идет кдругая страница.
Все ссылки # прокручиваются до определенного блока на главной странице.Но когда я нахожусь на странице практической информации, мой URL-адрес url.be/practical-info/ Поэтому, когда я пытаюсь нажать «О», URL-адрес url.be/practical-info/#about, и, очевидно, выигралне работает.
Мое решение было бы, если бы я щелкнул пункт меню с # в нем, добавить базовый URL веб-сайта перед ним?Или есть лучший способ справиться с этой проблемой?
Я уже получил это в jQuery:
//anchor links
jQuery('a.nav-link[href^="#"]').on('click', function(event) {
// Make sure this.hash has a value before overriding default behavior
if (this.hash !== "") {
// Store hash
var hash = this.hash;
// Using jQuery's animate() method to add smooth page scroll
// The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area
$('html, body').animate({
scrollTop: $(hash).offset().top
}, 2000, function() {
// Add hash (#) to URL when done scrolling (default click behavior)
window.location.hash = hash;
});
return false;
} // End if
});
Или это для каждого, который заменяет значения href из # ссылки:
jQuery("a[href^='\#']").each(function(){
//this.href=location.href.split("#")[0]+'#'+this.href.substr(this.href.indexOf('#')+1);
var getUrl = window.location;
var baseurl = getUrl.origin;
var hash = this.href.substr(this.href.indexOf('#')+1);
var fullurl = baseurl + '#' + hash;
this.attr('href', fullurl);
console.log(this);
});
Но и этот не работает и выдает ошибку.