Хорошая альтернатива коду

168
11 июля 2018, 06:50

Хотел бы узнать есть ли хорошая и оптимизированная альтернатива моему коду. Это код на якоря, выполненный на чистом 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>

READ ALSO
Почему объект существует в то время, когда на него нет ни одной ссылки

Почему объект существует в то время, когда на него нет ни одной ссылки

У нас есть конструктор Menu, который помогает создать графический компонент из уже существующего элемента в DOMСам элемент передаём в конструтор,...

162