Всем доброго времени суток.
Подскажите пожалуйста в чем может быть проблема и как её решить?
Суть такова, что при переходе к якорю, в JS я задаю отступ, и он срабатывает НО только на доли секунды, потом резко прилипает к верху.
var linkNav = document.querySelectorAll('[href^="#"]'),
V = 1;
for (var i = 0; i < linkNav.length; i++) {
linkNav[i].addEventListener('click', function(e) {
e.preventDefault();
var w = window.pageYOffset,
hash = this.href.replace(/[^#]*(.*)/, '$1');
t = document.querySelector(hash).getBoundingClientRect().top -400,
start = null;
requestAnimationFrame(step);
function step(time) {
if (start === null) start = time;
var progress = time - start,
r = (t < 0 ? Math.max(w - progress/V, w + t) : Math.min(w + progress/V, w + t));
window.scrollTo(0,r);
if (r != w + t) {
requestAnimationFrame(step)
} else {
location.hash = hash
}
}
}, false);
}
Другими словами впечатление, что после отрабатывания скрипта, активируется какое то другое правило...