22<template >
33 <div >
44 <div class =" images" >
5- <div class =" image" v-for =" image in images " :key =" image.id" >
6- <img :src =" image.img" :alt =" image.title" />
5+ <div class =" image" v-for =" image in loadedImages " :key =" image.id" >
6+ <img :src =" image.img" :alt =" image.title" width = " 300 " height = " 448 " />
77 </div >
88 </div >
99 <div class =" loader" v-if =" isLoading" ></div >
@@ -18,10 +18,21 @@ import InfiniteAjaxScroll from '@webcreate/infinite-ajax-scroll';
1818export default Vue .extend ({
1919 data() {
2020 return {
21- ias: null ,
2221 isLast: false ,
2322 isLoading: false ,
24- images: []
23+ images: [
24+ ' https://m.media-amazon.com/images/M/MV5BYzFjNzIxMmEtMzY5NS00YTgzLTkwYWEtN2FjMmY0NmNkZWY3XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_SX300.jpg' ,
25+ ' https://m.media-amazon.com/images/M/MV5BMTM1MTk2ODQxNV5BMl5BanBnXkFtZTcwOTY5MDg0NA@@._V1_SX300.jpg' ,
26+ ' https://m.media-amazon.com/images/M/MV5BMzRiMGE2MmMtM2RhMy00OWNiLTljYTktOThmMmE1YjY1NjYyXkEyXkFqcGdeQXVyMTMxODk2OTU@._V1_SX300.jpg' ,
27+ ' https://ia.media-imdb.com/images/M/MV5BOTI0MzcxMTYtZDVkMy00NjY1LTgyMTYtZmUxN2M3NmQ2NWJhXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_SX300.jpg' ,
28+ ' https://ia.media-imdb.com/images/M/MV5BNWMxZTgzMWEtMTU0Zi00NDc5LWFkZjctMzUxNDIyNzZiMmNjXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_SX300.jpg' ,
29+ ' https://m.media-amazon.com/images/M/MV5BYTk5NWE2ZjAtZmRmOS00ZGYzLWI5ZmUtMDcwODI0YWY0MTRlL2ltYWdlXkEyXkFqcGdeQXVyNjQzNDI3NzY@._V1_SX300.jpg' ,
30+ ' https://m.media-amazon.com/images/M/MV5BYjZlYmJjYWYtZDM0NS00YmZlLWIyMTAtMDY5ZTNjZTgwMDhjXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_SX300.jpg' ,
31+ ' https://ia.media-imdb.com/images/M/MV5BNzM4Y2FlNzYtZmY5Yy00NzU4LTk1ODItY2NjYWYzYzUyZGM3L2ltYWdlXkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_SX300.jpg' ,
32+ ' https://ia.media-imdb.com/images/M/MV5BNjFlOTI2OGQtMzg0YS00ZGE4LTkwMjEtZDUzYThlOTU5YjQ5XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_SX300.jpg' ,
33+ ' https://m.media-amazon.com/images/M/MV5BYTUwMTY1YmMtN2U5NC00YjkzLTg0YWQtZmEwNTEzZjdkNzQ2XkEyXkFqcGdeQXVyMTQxNzMzNDI@._V1_SX300.jpg' ,
34+ ],
35+ loadedImages: [],
2536 };
2637 },
2738 mounted() {
@@ -45,16 +56,17 @@ export default Vue.extend({
4556 return Promise .all ([
4657 this .loadNewImage (),
4758 this .loadNewImage (),
48- this .loadNewImage ()
59+ this .loadNewImage (),
4960 ]).then (() => hasNextUrl );
5061 },
5162 loadNewImage() {
5263 return new Promise ((resolve ) => {
5364 // Simulate loading of new image
5465 setTimeout (() => {
55- this .images .push ({
56- title: ` A nice image random image at position ${this .images .length + 1 } ` ,
57- img: ` https://picsum.photos/266/400?random=${this .images .length } `
66+ this .loadedImages .push ({
67+ id: this .loadedImages .length + 1 ,
68+ title: ` A nice image random image at position ${this .loadedImages .length + 1 } ` ,
69+ img: this .images [this .loadedImages .length % this .images .length ],
5870 })
5971 resolve ()
6072 }, 400 )
@@ -68,10 +80,12 @@ export default Vue.extend({
6880 .images {
6981 margin : 0 auto ;
7082 padding : 20px ;
71- max-width : 400px ;
83+ display : flex ;
84+ flex-wrap : wrap ;
85+ gap : 20px ;
86+ justify-content : center ;
7287 }
7388 .image {
74- margin-top : 20px ;
7589 padding : 20px ;
7690 border : 10px solid #666 ;
7791
0 commit comments