我想在我的网页有各种类型的过渡。例如,我希望标题从上到下,而页面的最后一个元素从下到上。当元素出现在屏幕上时,我的JavaScript会添加显示的类。但是,如果元素向下移动(例如)-100px以返回到0 px与TranslateY,并且这个-100px将其推离屏幕,动画不会开始。我不知道问题是我的JavaScript还是TranslateY的使用。我不想使用外部库。
我的JavaScript代码:
// questa funzione serve a determinare se gli items osservati sono sullo schermo (utile per animazioni)
var elementiDaOsservare = document.querySelectorAll('.osservato');
var callback = function(items) {
items.forEach((item) => {
var position = item.target.getBoundingClientRect();
if (item.isIntersecting) {
item.target.classList.add("mostrato");
} else if (position.top > 0) { // rimuove la classe mostrato solo se l'item si trova nella parte non visibile superiore dello schermo
item.target.classList.remove("mostrato");
}
});
}
var observer = new IntersectionObserver(callback);
elementiDaOsservare.forEach((element) => {
observer.observe(element);
});
1条答案
按热度按时间2ledvvac1#
这个问题比预期的更容易解决。我只是为过渡类型创建了各种情况,并删除了translateY的px距离: