День 13 курса JavaScript 30 Веса Боса показал взаимодействие между CSS и JavaScript. Это включало в себя получение изображений, которые скользили на место, когда вы прокручивали страницу вниз.
Сначала мы собрали наши изображения из HTML.
const sliderImages = document.querySelectorAll('.slide-in');
Теперь Бос использовал одну функцию с несколькими вычислениями для создания эффекта.
function checkslide(e){ sliderImages.forEach(sliderImage => { //slide in when cursor is halfway point of image location. const slideInAt = (window.scrollY + window.innerHeight) sliderImage.height / 2; // scrollY is px from top of view. innerHeight is px of view. // subtract 50% of image height so slide in there // calculate location of bottom of image const imageBottom = sliderImage.offsetTop + sliderImage.height; //offsetTop is px from top of image to top of page //add image height to get px to bottom const isHalfShown = slideInAt > sliderImage.offsetTop; //slide in when scrolled past 50% //toggle image in or out of view. 'active' affects CSS transition settings const isNotScrolledPast = window.scrollY < imageBottom; if(isHalfShown && isNotScrolledPast){ sliderImage.classList.add('active'); }else { sliderImage.classList.remove('active'); } });
Эта программа произвела классный эффект на экране. Математика не была сложной, но требовала некоторого размышления и визуализации в голове.
Следите за моими учебными заметками по мере того, как я продвигаюсь по JavaScript 30.