1+ "use strict" ;
2+
3+ const container = document . querySelector ( ".container" ) ;
4+ const nextBtn = document . querySelector ( "#next" ) ;
5+ const prevBtn = document . querySelector ( "#prev" ) ;
6+
7+ let imageEls = [ ] ;
8+ let currentIndex = 0 ;
9+
10+ // Fetch images from Picsum API
11+ fetch ( "https://picsum.photos/v2/list?page=2&limit=6" )
12+ . then ( res => res . json ( ) )
13+ . then ( data => {
14+ // Create <img> elements dynamically
15+ data . forEach ( ( img , index ) => {
16+ let image = document . createElement ( "img" ) ;
17+ image . src = img . download_url ;
18+ image . alt = "Slider image" ;
19+ if ( index === 0 ) image . classList . add ( "show" ) ;
20+ container . appendChild ( image ) ;
21+ } ) ;
22+
23+ // Update NodeList after adding images
24+ imageEls = document . querySelectorAll ( ".container img" ) ;
25+ } )
26+ . catch ( err => console . error ( "Error fetching images:" , err ) ) ;
27+
28+ // Next Button
29+ nextBtn . addEventListener ( "click" , ( ) => {
30+ if ( imageEls . length === 0 ) return ;
31+
32+ imageEls [ currentIndex ] . classList . remove ( "show" ) ;
33+ currentIndex = ( currentIndex === imageEls . length - 1 ) ? 0 : currentIndex + 1 ;
34+ imageEls [ currentIndex ] . classList . add ( "show" ) ;
35+ } ) ;
36+
37+ // Prev Button
38+ prevBtn . addEventListener ( "click" , ( ) => {
39+ if ( imageEls . length === 0 ) return ;
40+
41+ imageEls [ currentIndex ] . classList . remove ( "show" ) ;
42+ currentIndex = ( currentIndex === 0 ) ? imageEls . length - 1 : currentIndex - 1 ;
43+ imageEls [ currentIndex ] . classList . add ( "show" ) ;
44+ } ) ;
0 commit comments