Пытаюсь сделать анимацию на нашем сайте, но столкнулся с проблемой. Анимация должна быть плавной и запускаться при скролле страницы, однако она работает некорректно: дергается и тормозит. Может кто-то подсказать, что я делаю не так?
Мой код:
document.addEventListener('scroll', function() {
const box = document.querySelector('.animated-box');
const section = document.querySelector('.animated-section');
const sectionTop = section.getBoundingClientRect().top;
const sectionHeight = section.clientHeight;
if (window.scrollY > sectionTop - window.innerHeight + sectionHeight / 2) {
box.classList.add('scrolled');
} else {
box.classList.remove('scrolled');
}
});
.animated-section {
height: 200vh;
display: flex;
justify-content: center;
align-items: center;
}
.animated-box {
width: 100px;
height: 100px;
background-color: #3498db;
transform: translateY(100px);
transition: transform 0.5s ease-out;
}
.animated-box.scrolled {
transform: translateY(0);
}
<div class="animated-section">
<div class="animated-box"></div>
</div>