Хотел бы узнать есть ли хорошая и оптимизированная альтернатива моему коду. Это код на якоря, выполненный на чистом js.
Заранее Спасибо!
Anchor();
function Scroll(To, Time, Frames){
var Height = document.body.offsetHeight;
var Interval = setInterval(function(){
var ScrollTop = document.documentElement.scrollTop;
if((ScrollTop + window.innerHeight) >= Height || ScrollTop >= To) {
clearInterval(Interval);
return;
}else{
scrollBy(0, Frames);
}
}, Time);
}
function Anchor() {
var Elements = document.querySelectorAll('a[href^="#"]');
if(Elements == null) return;
for(var key in Elements){
var ElementTo = document.querySelector(Elements[key].getAttribute("href"));
if(ElementTo == null) return;
var To = ElementTo.getBoundingClientRect().top;
Elements[key].onclick = function(){
Scroll(To, 6, 20);
return false;
}
}
}
<a href="#a">a</a>
<a href="#bb">b</a>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div class="donat" id="a">
1111111111111111111111111<br>
1111111111111111111111111<br>
1111111111111111111111111<br>
1111111111111111111111111<br>
1111111111111111111111111<br>
1111111111111111111111111<br>
1111111111111111111111111<br>
1111111111111111111111111<br>
1111111111111111111111111<br>
1111111111111111111111111<br>
1111111111111111111111111<br>
1111111111111111111111111<br>
</div>
<div class="other" id="b">
0000000000000000000000000<br>
0000000000000000000000000<br>
0000000000000000000000000<br>
0000000000000000000000000<br>
0000000000000000000000000<br>
0000000000000000000000000<br>
0000000000000000000000000<br>
0000000000000000000000000<br>
0000000000000000000000000<br>
0000000000000000000000000<br>
</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
У нас есть конструктор Menu, который помогает создать графический компонент из уже существующего элемента в DOMСам элемент передаём в конструтор,...
https://codepenio/Don2Quixote/full/wXdoRe