GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — JavaScriptProjectInfiniteScroll/script.js at master · jthinlay/JavaScriptProjectInfiniteScroll Expand file tree/ Copy pathscript.jsMore file actions 93 lines (78 loc) · 2.72 KB / Copy pathscript.jsFile metadata and controls93 lines (78 loc) · 2.72 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 const imageContainer = document.getElementById('image-container'); const loader = document.getElementById("loader"); let ready = false; let imagesLoaded = 0; let totalImages = 0; let isInitialPhotosLoad = true; let photosArray = []; // helper Function to Set Attributes on DOM Elements function setAttributes(element, attributes){ for(const key in attributes){ element.setAttribute(key, attributes[key]); } } // Unsplash API URL let initialPhotoCount = 5; let unsplashApiUrl = `https://api.unsplash.com/photos/random/?client_id=${apiKey}&count=${initialPhotoCount}`; function updateApiUrlWithNewCount(pictureCount){ unsplashApiUrl = `https://api.unsplash.com/photos/random/?client_id=${apiKey}&count=${pictureCount}` } //Check if all images were loaded function imageLoaded() { imagesLoaded++; if(imagesLoaded === totalImages){ ready = true; loader.hidden = true; } } // Create Elements for links and Photos, Add to DOM function displayPhotos(){ imagesLoaded = 0; totalImages = photosArray.length; console.log('total images:', totalImages) loader.hidden = true; photosArray.forEach((photo)=>{ const item = document.createElement('a'); // item.setAttribute('href', photo.links.html); // item.setAttribute('target', '_blank'); setAttributes(item, { href: photo.links.html, target: '_blank' }) const img = document.createElement('img'); // img.setAttribute('src', photo.urls.regular); // img.setAttribute('alt', photo.alt_description); // img.setAttribute('title', photo.alt_description); setAttributes(img, { src: photo.urls.regular, alt: photo.alt_description, title: photo.alt_description }) // Event Listener, check when each is finished loading img.addEventListener('load', imageLoaded); //Put <img> inside <a>, then put both inside imageContainer Element item.appendChild(img); imageContainer.appendChild(item); }) } async function getUnsplashApiPhotos(){ try{ const response = await fetch(unsplashApiUrl); photosArray = await response.json(); displayPhotos(); if(isInitialPhotosLoad){ updateApiUrlWithNewCount(30); isInitialPhotosLoad = false; } }catch(error){ console.log("Whoops! something went wrong", error) } } // Check to see if scrolling near bottom of page, load more photos window.addEventListener('scroll', () => { if ( window.innerHeight + window.scrollY >= document.body.offsetHeight - 1000 && ready){ ready = false; getUnsplashApiPhotos(); } }) getUnsplashApiPhotos(); |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |