Проблема в том, что он отлично работает в локальной среде. Но когда я публикую его в surge, он не работает должным образом. Я использую webpack как для dev, так и для prod.
Обновлять Я снова опубликовал сайт. Это решение иногда работает, иногда нет. Тестирование в Chrome Incognito. Есть ли проблема с кэшированием? После нажатия нескольких ссылок на веб-сайте прокрутите до привязки, которая начала работать правильно.
Я использую код ниже:
$("a[href^='#']").on('click', function(event) {
if (this.hash !== "") {
// Prevent default anchor click behavior
event.preventDefault();
var hash = this.hash;
var header = $('.rd-navbar').height();
$('html, body').animate({
scrollTop: $(hash).offset().top - header
}, 800, function(){
// Add hash (#) to URL when done scrolling (default click behavior)
window.location.hash = hash;
});
}
});
Плавная прокрутка работает нормально, если якорь находится на той же странице. Но, например, у меня есть футер, где ссылка technology.html#security. Это отлично работает в моей локальной среде. Но когда я нажимаю на ту же ссылку в опубликованной версии, она не прокручивается до раздела security на technology.html.
Я также использую ниже CSS:
html {
scroll-behavior: smooth;
}
section:before {
height: 40px;
content: "";
display:block;
}
Также, если я обновляю страницу technology.html#security локально, она работает нормально и правильно прокручивается до раздела. Но не в опубликованной версии.
Как исправить привязку прокрутки к другой странице в рабочей среде?
@AswinKumar уже пытался, но у меня не сработало. Проблема в производственной версии.
Что не сработало? вы проверили хэш и связанный с ним элемент? Этот метод передачи #hash должен работать.
Вы уверены, что код анимации также находится на целевой странице?
@samb102 samb102 отлично работает в локальной среде. это не работает на prod env.
Код jquery @AswinKumar находится в общем сценарии.
@Valay Возможно, для загрузки скрипта требуется некоторое время. попробуй вставить в строку
@AswinKumar это общий код для всех <a>.
Событие клика @Valay работает только при клике. ваш код должен быть в $(function() {});
Код @AswinKumar находится в $document.ready()
@Valay, можно ли предоставить мне скрипку?
Давайте продолжить обсуждение в чате.

Возможный дубликат Плавная прокрутка до привязки после загрузки новой страницы