-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
75 lines (59 loc) · 2.12 KB
/
script.js
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
$(document).ready(function(){
const accessKey = 'OALaqyGdsDxs2gPdnH0VzQTPBe3YsNWFIqlnQzmQUQw';
let count = 5;
const apiUrl = `https://api.unsplash.com/photos/random?client_id=${accessKey}&count=${count}`;
let imagesLoaded = 0;
let totalImages = 0;
let ready = false;
let photosArr = [];
function imageLoaded(){
imagesLoaded ++;
if(imagesLoaded === totalImages){
//console.log( imagesLoaded);
//console.log(totalImages);
$(".loader").hide();
ready = true;
count = 30;
}
//console.log(imagesLoaded);
}
async function getPhotosFromUnsplash(){
try{
const response = await fetch(apiUrl);
photosArr = await response.json();
//console.log(photos);
//localStorage.setItem('photos', JSON.stringify(photos));
//console.log( photos)
renderPhotos();
}catch(error){
console.log(error);
}
}
function renderPhotos(){
//const photosArr = JSON.parse(localStorage.getItem('photos'));
//console.log(photosArr)
imagesLoaded = 0;
totalImages = photosArr.length;
if(photosArr){
$('.loader').hide();
photosArr.forEach( photo => {
const item = document.createElement('a');
item.setAttribute('href', photo.links.html);
item.setAttribute('target', '_blank');
const img = document.createElement('img');
img.setAttribute('src', photo.urls.regular);
img.setAttribute('alt', photo.alt_description);
img.addEventListener('load',imageLoaded);
item.appendChild(img);
$('.image-container').append(item);
})
}
}
window.addEventListener('scroll', () => {
if((window.innerHeight + window.scrollY) >= document.body.offsetHeight && ready ){
ready = false;
getPhotosFromUnsplash();
}
})
getPhotosFromUnsplash();
})