@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) 
    } 
  });
});
  • Вопрос задан
  • 139 просмотров
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
Вариант раз: самостоятельно - гуглите нативные аналоги методов jquery.

Вариант два: идёте на фриланс, платите деньги.

Вариант три: продолжаете клянчить код здесь, надеясь, что вопрос не будет закрыт по причине "это задание, а не вопрос".
Ответ написан
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; } достаточно будет.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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