Я новичок в JavaScript. Извините, если это дубликат, но я не смог найти решение для моих нужд.Как исправить посадочную метку в неправильном положении
При нажатии на якорный тэг он ведет в желаемое положение. Однако у меня есть еще один тег привязки, который предназначен для ссылки на ту же позицию, что и на другой. Если я нажму на это (после того, как я уже нажал на другой тег привязки, который ведет к тому же положению, что и тот, который я сейчас кликнул), он НЕ приводит меня к моей желаемой позиции.
Я понимаю, это потому, что я использую hashchange
. Я пробовал использовать click
, но возвращает 0 для console.log(document.URL.indexOf(“#”));
вместо 58 при использовании hashchange
.
Я полагаю, что логика click
находится на правильном пути, но я не понимаю, почему она не делает то, что я ожидаю. (Это: клик запускается после того, как вы щелкнули что-то кликаемое на странице).
Я также пробовал использовать setTimeout
, но я не мог понять, как правильно его манипулировать, чтобы «перезапустить» мою функцию fixedAnchor
.
function fixedAnchor() {
// if (location.hash.length !== 0) {
window.scrollTo(window.scrollX, window.scrollY - 130);
console.log(document.URL.indexOf("#"));
// console.log(document.URL.indexOf("#") > -1 & document.URL.indexOf("#") <= 58);
// if (document.URL.indexOf("#") > -1 & document.URL.indexOf("#") < 58) {
// console.log(document.URL.indexOf("#") > -1);
offSetAnchor();
// }
// }
}
function offSetAnchor() {
if (document.URL.indexOf("#") != 58){
window.scrollTo(window.scrollX, window.scrollY - 130);
}
// setTimeout(function(){
// window.scrollTo(window.scrollX, window.scrollY - 130);
// // fixedAnchor();
// }, 1000);
}
window.addEventListener('hashchange', fixedAnchor);
// window.addEventListener('click', fixedAnchor);
Можете ли вы настроить JSFiddle или фрагмент здесь, чтобы показать нам всю страницу с HTML и все? –