@ratibordas
Frontend-статист

Как переписать данный скрипт на чистый js?

Есть код на jquery, его нужно переписать на чистый js, чтобы не тащить с собой библиотеку. Как это лучше сделать, сохранив анимацию?
P.S Ждать загрузки DOM потребности нет.
Собственно, код:
$(document).ready(function(){
  
  $("a").on('click', function(event) {

    
    if (this.hash !== "") {
      
      event.preventDefault();

      
      var hash = this.hash;

     
      $('html, body').animate({
        scrollTop: $(hash).offset().top
      }, 1500) 
    } 
  });
});
  • Вопрос задан
  • 209 просмотров
Решения вопроса 2
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Seasle
@Seasle Куратор тега JavaScript
window.addEventListener('DOMContentLoaded', () => {
	const links = document.querySelectorAll('a');

	links.forEach(link => {
		link.addEventListener('click', event => {
			if (link.hash !== '') {
				event.preventDefault();

				const target = document.querySelector(link.hash);
				if (target) {
					target.scrollIntoView({
						behavior: 'smooth'
					});
				}
			}
		});
	});
});


А вообще просто html { scroll-behavior: smooth; } достаточно будет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы