Je suis un tutoriel en ligne, et celui-ci m'a laissé perplexe après quelques tentatives et recherches. Fondamentalement, quand un utilisateur fait défiler la page une image devrait apparaître quand il atteint environ 50% de sa hauteur à partir du bas.Les images n'apparaissent pas lorsque vous faites défiler une page (Javascript)
Cependant, aucune de mes images n'apparaît? Dans le code lorsque je boucle à travers chaque image pour trouver sa hauteur à partir du bas, et console.log il me montre sa position sans problème.
const slideInAt = (window.scrollY + window.innerHeight);
Lorsque je tente de diviser la hauteur de l'image en demi-console.log me montre NaN.
const slideInAt = (window.scrollY + window.innerHeight) -
sliderImage.height/2;
Je ne suis pas sûr que cela empêche les images d'être affichées ou non? Voici la section complète du code dont je parle.
const sliderImages = document.querySelectorAll('.animation-element');
function checkSlide(e) {
sliderImages.forEach(sliderImage => {
// half way through the image
const slideInAt = (window.scrollY + window.innerHeight) -
sliderImage.height/2;
// bottom of the image
const imageBottom = sliderImage.offsetTop + sliderImage.height;
const isHalfShown = slideInAt > sliderImage.offsetTop;
const isNotScrolledPast = window.scrollY < imageBottom;
if (isHalfShown && isNotScrolledPast) {
sliderImage.classList.add('in-view');
} else {
sliderImage.classList.remove('in-view');
}
}); }
window.addEventListener('scroll', debounce(checkSlide));
La boucle est également montre toujours faux quand je défilement vers le haut et vers le bas dans DevTools. Mes excuses si je ne l'explique pas correctement, j'apprends toujours. Voici une version simplifiée de mon code en JSFiddle
Merci d'avance!
Bien sûr! Ou j'aurais simplement ajouté la classe _animation-element_ directement à la balise img. Merci pour votre réponse rapide! – WhatMeWorry
Ok, j'ai ajouté plus à ma page, mais mes images glissent dans et sur chaque rouleau? Des idées? Merci encore. [jsfiddle] (https://jsfiddle.net/rjdmeozf/7/) – WhatMeWorry
@WhatMeWorry Je pense que vous pouvez supprimer l'instruction else qui supprime la classe 'in-view' et les images restent visibles. – HMR