javascript与jQuery的等价物';生动活泼

javascript与jQuery的等价物';生动活泼,javascript,jquery,Javascript,Jquery,首先,下面是代码片段: $('a[href^="#"]').on('click', function(event) { var target = $( $(this).attr('href') ); if( target.length ) { event.preventDefault(); $('body').animate({ scrollTop: target.offset().top }, 1000

首先,下面是代码片段:

$('a[href^="#"]').on('click', function(event) {

    var target = $( $(this).attr('href') );

    if( target.length ) {
        event.preventDefault();
        $('body').animate({
            scrollTop: target.offset().top
        }, 1000);
    }

});
我正在尝试将其转换为Javascript(因为我还不太了解jQuery)

到目前为止,我已经做到了这一点:

var x = document.getElementsByTagName('a');
for (var i = 0; i < x.length; i++) {
    x[i].addEventListener('click', function (event) {

        var target = document.getElementById(event.target.getAttribute('href'));
        if (target) {
            event.preventDefault();
            document.getElementsByTagName('body')[0].animate({
                scrollTop: target.getBoundingClientRect().top
            }, 1000);
        }
    });
}

Javascript的
动画
的替代方案是什么?我知道有
setInterval
,但我想知道是否有更简单的方法来实现这一点?

jQuery是一个JavaScript库,而不是另一种编程语言。如果您想知道jQuery是如何制作动画的,那么请阅读jQuery的源代码。JavaScript animation==interval。这就是jQuery在幕后制作动画的方式。您的另一个选择是通过CSS提供/删除类和处理动画,尽管这并不总是可行的,这取决于您的条件。@Quentin我知道jQuery基本上是JS库。事实上,在发布这篇文章之前,我确实尝试过你所说的(动画代码在effects.js中:(如果我没有错的话))。然而,这并不意味着我可以直接提取代码并直接使用它。我将不得不经历更复杂、更耗时的整个层次结构。在任何情况下,使用间隔似乎是我目前唯一的选择。
$('body').animate({
    scrollTop: target.offset().top
}, 1000);