Estoy haciendo un desplazamiento suave en mi página. Pero el problema es que el enlace hash se elimina cuando me desplazo suavemente directamente a su sección de destino. Necesito mantener el hash cuando me desplazo suavemente a la página. ¿Alguien sabe cómo hacer esto?
Aquí está mi código
$('a[href*="#"]') .not('[href="#"]') .not('[href="#0"]') .click(function(event) { 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) { event.preventDefault(); $('html, body').animate({ scrollTop: target.offset().top }, 1000, function() { var $target = $(target); $target.focus(); if ($target.is(":focus")) { return false; } else { $target.attr('tabindex','-1'); $target.focus(); }; }); } } }); <div class="btn-container"> <ul> <li class="tab-btn"><a class="smoothScroll" href="#stay">Stay</a></li> | <li class="tab-btn"><a class="smoothScroll" href="#travel">Travel</a></li> | <li class="tab-btn"><a class="smoothScroll" href="#promo">Promo</a></li> </ul> </div> <div class="content-wrap" id="stay"> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Amet accusantium nam aliquam temporibus perspiciatis reiciendis mollitia magni, soluta commodi debitis, culpa porro quibusdam iure harum totam. Itaque, reiciendis. Nisi, fugiat. </p> </div> <div class="content-wrap" id="travel"> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Amet accusantium nam aliquam temporibus perspiciatis reiciendis mollitia magni, soluta commodi debitis, culpa porro quibusdam iure harum totam. Itaque, reiciendis. Nisi, fugiat. </p> </div> <div class="content-wrap" id="promo"> <p> Lorem, ipsum dolor sit amet consectetur adipisicing elit. Amet accusantium nam aliquam temporibus perspiciatis reiciendis mollitia magni, soluta commodi debitis, culpa porro quibusdam iure harum totam. Itaque, reiciendis. Nisi, fugiat. </p> </div>Prueba este guión:
$('a[href*="#"]') .not('[href="#"]') .not('[href="#0"]') .click(function (event) { event.preventDefault(); var hash = this.hash; $('html, body').animate({ scrollTop: $(hash).offset().top }, 800, function () { window.location.hash = hash; }); });