Что-то типа такого?
<script>
function onEntry(entry) {
entry.forEach(change => {
if (change.isIntersecting) {
change.target.classList.add('element-show');
}
});
}
let options = {
threshold: [0.5] };
let observer = new IntersectionObserver(onEntry, options);
let elements = document.querySelectorAll('.element-animation');
for (let elm of elements) {
observer.observe(elm);
}
</script>
.element-animation{
top: 0px;
opacity: 0;
position: relative;
}
.element-animation.element-show{
position: relative;
top: -20px;
opacity: 1;
transition-duration: 1.4s;
}
Елементам с появлением пропишите класс element-animation