scrollToFollowBtn.addEventListener("click", function() {
    scrollToElement(followBlock, 600)
}, false);
function scrollToElement(element, duration) {
    var to = element.getBoundingClientRect().top;
    var from = window.pageYOffset;
    var start = performance.now();
    requestAnimationFrame(function animate(time) {
        var progress = (time - start) / duration;
        1 <= progress && (progress = 1);
        window.scrollTo(0, from + (to - from) * progress | 0);
        1 > progress && requestAnimationFrame(animate)
    })
};<div class="filters">
  <button class="filter" data-filter="isSport">Sport</button>
  <button class="filter" data-filter="isFood">Food</button>
  <button class="filter" data-filter="isWears">Wears</button>
</div>
<div class="wrapper">
  <div class="link link_visible isSport">SPORT</div>
  <div class="link link_visible isSport">SPORT</div>
  <div class="link link_visible isSport">SPORT</div>
  <div class="link link_visible isFood">FOOD</div>
  <div class="link link_visible isFood">FOOD</div>
  <div class="link link_visible isFood">FOOD</div>
  <div class="link link_visible isWears">WEARS</div>
  <div class="link link_visible isWears">WEARS</div>
  <div class="link link_visible isWears">WEARS</div>
</div>let filters = document.querySelector('.filters');
let filterButtons = filters.querySelectorAll('.filter');
let wrapper = document.querySelector('.wrapper');
let links = wrapper.querySelectorAll('.link');
filters.addEventListener('click', e => {
  if (e.target.dataset.filter) {
    if (e.target.classList.contains('filter_active')) {
      
      e.target.classList.remove('filter_active');
      links.forEach(item => item.classList.add('link_visible'));
    
    } else {
    
      filterButtons.forEach(btn => btn.classList.remove('filter_active'));
      e.target.classList.add('filter_active');
      links.forEach(item => {
        item.classList.toggle(
          'link_visible',
          item.classList.contains(e.target.dataset.filter)
        );
      });
    }
  }
});function get_style() {
  function f() {
    if(i >= bestValues.length) return;
    bestValues[i].style.color = "green";
    ++i;
    setTimeout(f, 1000);
  }
  var i = 0;
  f();
}function get_style() {
  for (i = 0; i < bestValues.length; i++) {
    (function(i) {
      setTimeout(function() { bestValues[i].style.color = "green"; }, 1000 * i);
    }(i));
  }
}
- Поддержка ES2015 по умолчанию;
- Позволяет использовать разные загрузчики Webpack для разных частей Vue компонента, например, SASS для
<style>и Jade для<template>;- Позволяет использовать пользовательские секции во .vue-файлах, применяя к ним пользовательские цепочки загрузчиков
- Обращается со статическими ресурсами, указанными в
<style>и<template>, как с зависимостями модуля, и обрабатывает их Webpack загрузчиками;- Может эмулировать scoped CSS для компонентов;
- Поддерживает горячую замену модулей.