All language subtitles for 20. Building a Slider Component Part 2

af Afrikaans
sq Albanian
am Amharic
ar Arabic
hy Armenian
az Azerbaijani
eu Basque
be Belarusian
bn Bengali
bs Bosnian
bg Bulgarian
ca Catalan
ceb Cebuano
ny Chichewa
zh-CN Chinese (Simplified)
zh-TW Chinese (Traditional)
co Corsican
hr Croatian
cs Czech
da Danish
nl Dutch
en English Download
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French
fy Frisian
gl Galician
ka Georgian
de German
el Greek
gu Gujarati
ht Haitian Creole
ha Hausa
haw Hawaiian
iw Hebrew
hi Hindi
hmn Hmong
hu Hungarian
is Icelandic
ig Igbo
id Indonesian
ga Irish
it Italian
ja Japanese
jw Javanese
kn Kannada
kk Kazakh
km Khmer
ko Korean
ku Kurdish (Kurmanji)
ky Kyrgyz
lo Lao
la Latin
lv Latvian
lt Lithuanian
lb Luxembourgish
mk Macedonian
mg Malagasy
ms Malay
ml Malayalam
mt Maltese
mi Maori
mr Marathi
mn Mongolian
my Myanmar (Burmese)
ne Nepali
no Norwegian
ps Pashto
fa Persian Download
pl Polish
pt Portuguese
pa Punjabi
ro Romanian
ru Russian
sm Samoan
gd Scots Gaelic
sr Serbian
st Sesotho
sn Shona
sd Sindhi
si Sinhala
sk Slovak
sl Slovenian
so Somali
es Spanish
su Sundanese
sw Swahili
sv Swedish
tg Tajik
ta Tamil
te Telugu
th Thai
tr Turkish
uk Ukrainian
ur Urdu
uz Uzbek
vi Vietnamese
cy Welsh
xh Xhosa
yi Yiddish
yo Yoruba
zu Zulu
or Odia (Oriya)
rw Kinyarwanda
tk Turkmen
tt Tatar
ug Uyghur
Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated: 1 1 00:00:01,260 --> 00:00:03,270 Let's now continue building 2 2 00:00:03,270 --> 00:00:04,663 our slider component. 3 3 00:00:06,310 --> 00:00:09,380 And let's actually start by attaching an event handler 4 4 00:00:09,380 --> 00:00:11,210 to a keyboard event 5 5 00:00:11,210 --> 00:00:14,570 so that we can also slide through the slider 6 6 00:00:14,570 --> 00:00:16,993 using the left and right arrow keys. 7 7 00:00:18,040 --> 00:00:20,883 So let's do that after these ones here. 8 8 00:00:22,010 --> 00:00:25,150 And remember that we actually handle keyboard events 9 9 00:00:25,150 --> 00:00:27,960 right at the document.addEventListener. 10 10 00:00:29,790 --> 00:00:31,690 And then we're gonna use the key down, 11 11 00:00:33,070 --> 00:00:35,530 event and so that's gonna be fired 12 12 00:00:35,530 --> 00:00:38,960 as soon as the key is pressed down. 13 13 00:00:38,960 --> 00:00:40,403 And here we need the event. 14 14 00:00:41,330 --> 00:00:45,690 And let's start by taking a look here at the event. 15 15 00:00:45,690 --> 00:00:47,010 So that we can figure out 16 16 00:00:48,430 --> 00:00:50,193 which keys we actually want to use. 17 17 00:00:51,430 --> 00:00:53,793 So I'm gonna hit the right arrow key. 18 18 00:00:55,000 --> 00:01:00,000 And so you see that we get the key here as ArrowRight. 19 19 00:01:00,840 --> 00:01:04,510 And then the other way around, it is of course ArrowLeft. 20 20 00:01:04,510 --> 00:01:07,873 And so I'm gonna use that key, ArrowLeft and ArrowRight. 21 21 00:01:11,750 --> 00:01:13,370 So, that's very simple. 22 22 00:01:13,370 --> 00:01:17,647 If e.key equals ArrowLeft, 23 23 00:01:20,820 --> 00:01:24,563 then what we want to do is to call the previous slide, 24 24 00:01:25,910 --> 00:01:27,890 function, right? 25 25 00:01:27,890 --> 00:01:30,330 And so this is also a reason why I created 26 26 00:01:30,330 --> 00:01:32,473 a separate function for this. 27 27 00:01:33,360 --> 00:01:37,410 Okay, so otherwise, I could also have left the entire code 28 28 00:01:37,410 --> 00:01:41,760 just here, instead of exporting it into its own function. 29 29 00:01:41,760 --> 00:01:43,420 I still prefer it like this, 30 30 00:01:43,420 --> 00:01:45,710 but it wouldn't have been necessary. 31 31 00:01:45,710 --> 00:01:48,770 But now as we need to reuse the same code here as well, 32 32 00:01:48,770 --> 00:01:52,583 then I really would have to create it, in its own function. 33 33 00:01:53,500 --> 00:01:55,190 Now you might have noticed that here 34 34 00:01:55,190 --> 00:01:58,420 we also could have used like, short circuiting 35 35 00:01:58,420 --> 00:02:03,420 so we could do e.key equal ArrowRight, 36 36 00:02:07,650 --> 00:02:10,700 and next slide. 37 37 00:02:10,700 --> 00:02:12,530 So this would work the same way 38 38 00:02:12,530 --> 00:02:14,343 because of short circuiting, right? 39 39 00:02:15,460 --> 00:02:16,623 At least I hope so. 40 40 00:02:17,870 --> 00:02:19,280 And yeah, it does. 41 41 00:02:19,280 --> 00:02:23,540 So I just hit the right key and here the left key 42 42 00:02:25,320 --> 00:02:27,670 and so it works just as fine. 43 43 00:02:27,670 --> 00:02:31,120 So you can now choose which version you like the most 44 44 00:02:31,120 --> 00:02:33,190 so I'm gonna leave both here, 45 45 00:02:33,190 --> 00:02:36,410 and let you decide which one you want to use. 46 46 00:02:36,410 --> 00:02:40,426 Now right, but now about the dots that I was talking about, 47 47 00:02:40,426 --> 00:02:43,490 let's go here to our HTML 48 48 00:02:44,590 --> 00:02:48,790 because, now here we actually already have a div 49 49 00:02:48,790 --> 00:02:50,700 so an element for that. 50 50 00:02:50,700 --> 00:02:53,440 So we have two buttons of course, these two 51 51 00:02:53,440 --> 00:02:56,030 and then we also have this empty container, 52 52 00:02:56,030 --> 00:02:58,460 in which we're gonna create the dots. 53 53 00:02:58,460 --> 00:03:00,790 So let's start by selecting that element 54 54 00:03:02,430 --> 00:03:05,387 and I'm gonna call it the dotContainer. 55 55 00:03:16,580 --> 00:03:18,810 So that's just dots, 56 56 00:03:18,810 --> 00:03:21,023 I think, yeah that's correct. 57 57 00:03:21,880 --> 00:03:26,333 And so let's start by creating all these dots in there. 58 58 00:03:28,020 --> 00:03:30,403 So I'm gonna create a new function here. 59 59 00:03:31,570 --> 00:03:35,260 So basically, nicely organizing the entire code 60 60 00:03:35,260 --> 00:03:38,350 of this slider here into different functions. 61 61 00:03:38,350 --> 00:03:41,773 And so that's a good pattern to get used to , alright? 62 62 00:03:43,480 --> 00:03:47,283 So just so you see what these dots will actually look like, 63 63 00:03:49,400 --> 00:03:52,180 so each dot is gonna be one element 64 64 00:03:52,180 --> 00:03:54,670 with the class of dots dot. 65 65 00:03:54,670 --> 00:03:57,810 And then it will have this data attribute of slide 66 66 00:03:57,810 --> 00:03:59,543 with the number of the slide 67 67 00:03:59,543 --> 00:04:03,330 that clicking the button will go to, alright? 68 68 00:04:03,330 --> 00:04:06,440 So one more time, the data attribute here holds some data 69 69 00:04:06,440 --> 00:04:09,683 that we need in order to make the functionality work. 70 70 00:04:10,580 --> 00:04:13,200 Let's actually grab this code here 71 71 00:04:13,200 --> 00:04:15,073 so I'm copying all of it now, 72 72 00:04:17,650 --> 00:04:22,010 and so what we want to do here now is to create one element 73 73 00:04:22,010 --> 00:04:24,640 like this for each of the slides. 74 74 00:04:24,640 --> 00:04:27,850 So the easiest way of doing that is to simply loop 75 75 00:04:27,850 --> 00:04:29,730 over the slides, 76 76 00:04:29,730 --> 00:04:33,370 because then we can do something for each of them. 77 77 00:04:33,370 --> 00:04:36,760 But in this case, it's not even gonna be about the slides 78 78 00:04:36,760 --> 00:04:39,180 it's just that we can do it four times, 79 79 00:04:39,180 --> 00:04:40,823 because we have four slides. 80 80 00:04:41,760 --> 00:04:45,007 So we have to slide again, and then the index, 81 81 00:04:45,007 --> 00:04:46,070 but in this case, 82 82 00:04:46,070 --> 00:04:49,393 we're really only gonna be interested in the index. 83 83 00:04:50,350 --> 00:04:52,758 So missing the function keyword here 84 84 00:04:52,758 --> 00:04:55,750 and actually since we're not interested in the slides, 85 85 00:04:55,750 --> 00:05:00,360 we can again use this convention of the throwaway variable. 86 86 00:05:00,360 --> 00:05:02,283 So a variable that we don't even need. 87 87 00:05:03,860 --> 00:05:08,860 And so let's now say dotContainer.insertAdjacentHTML. 88 88 00:05:09,880 --> 00:05:12,900 So as I mentioned, this is my favorite way 89 89 00:05:12,900 --> 00:05:14,923 of creating HTML elements. 90 90 00:05:15,868 --> 00:05:20,380 And so let's say beforeend so basically adding it 91 91 00:05:20,380 --> 00:05:22,470 as the last child always. 92 92 00:05:22,470 --> 00:05:26,450 And then here, we need the HTML code itself. 93 93 00:05:26,450 --> 00:05:28,910 And so let me just paste that button 94 94 00:05:28,910 --> 00:05:32,350 so that code that I copied from the demo site. 95 95 00:05:32,350 --> 00:05:36,763 And now here, all we need to do is to add the index. 96 96 00:05:38,320 --> 00:05:41,510 And so then the first button will get index zero, 97 97 00:05:41,510 --> 00:05:43,340 then two, three and four. 98 98 00:05:43,340 --> 00:05:46,270 So that in the next step we then can read this value 99 99 00:05:46,270 --> 00:05:50,210 from here, and move exactly to that slide 100 100 00:05:50,210 --> 00:05:52,233 once one of the dots is clicked. 101 101 00:05:55,070 --> 00:05:57,500 So let's check that out. 102 102 00:05:57,500 --> 00:06:00,513 Oh, and of course, we need to also call this function. 103 103 00:06:01,690 --> 00:06:04,870 So in the beginning, we need to call, goToSlide 104 104 00:06:04,870 --> 00:06:06,423 and also create dots. 105 105 00:06:08,270 --> 00:06:10,500 So create dots. 106 106 00:06:10,500 --> 00:06:14,410 And I will organize this a bit nicer by the end 107 107 00:06:14,410 --> 00:06:17,100 for now let's just leave it like this. 108 108 00:06:17,100 --> 00:06:20,183 Oh, and you see, we have the four dots now here. 109 109 00:06:21,142 --> 00:06:24,790 Now right, let's check them out here just to see 110 110 00:06:24,790 --> 00:06:26,860 the data slide attribute 111 111 00:06:26,860 --> 00:06:29,853 and indeed, zero, one, two and three. 112 112 00:06:30,910 --> 00:06:33,393 And now let's actually make them work. 113 113 00:06:34,330 --> 00:06:36,690 So adding another event handler here 114 114 00:06:37,630 --> 00:06:40,980 And I like to keep the event handlers or event listeners 115 115 00:06:40,980 --> 00:06:42,780 here at the bottom. 116 116 00:06:42,780 --> 00:06:47,000 And so of course, we are gonna use again, event delegation. 117 117 00:06:47,000 --> 00:06:50,700 So we're not gonna attach one event handler to each dot, 118 118 00:06:50,700 --> 00:06:52,990 but instead to the common parent. 119 119 00:06:52,990 --> 00:06:55,652 And so that is of course, the dotContainer, 120 120 00:06:55,652 --> 00:06:58,193 into which we just added the dots, 121 121 00:06:59,270 --> 00:07:01,140 so addEventListener, 122 122 00:07:02,060 --> 00:07:03,393 waiting for a click. 123 123 00:07:06,760 --> 00:07:08,950 And now to actually match the element 124 124 00:07:08,950 --> 00:07:10,573 that we're interested in, 125 125 00:07:10,573 --> 00:07:14,060 we can simply now check for the class. 126 126 00:07:14,060 --> 00:07:18,137 So that's event.target.classList.contains. 127 127 00:07:24,310 --> 00:07:26,010 And then the class of the dots 128 128 00:07:26,010 --> 00:07:29,577 is dots underscore, underscore dot. 129 129 00:07:34,520 --> 00:07:38,150 Alright, then if so let's just lock that to the console 130 130 00:07:38,150 --> 00:07:38,983 pretty quick. 131 131 00:07:43,470 --> 00:07:46,470 So here we get dot if we click outside somewhere 132 132 00:07:46,470 --> 00:07:47,960 nothing happens, 133 133 00:07:47,960 --> 00:07:49,923 and then again, dot and dot. 134 134 00:07:50,830 --> 00:07:53,883 Alright, so let's get the slide. 135 135 00:07:54,890 --> 00:07:59,890 So const slide is equal e.target.dataset.slide 136 136 00:08:04,987 --> 00:08:09,620 And so that's because it's called data slide. 137 137 00:08:09,620 --> 00:08:12,840 And so as always, all the custom data attributes 138 138 00:08:12,840 --> 00:08:16,380 are in the data set, and then dot this value. 139 139 00:08:16,380 --> 00:08:17,373 So .slide. 140 140 00:08:19,110 --> 00:08:22,710 So .slide and to make it even better, 141 141 00:08:22,710 --> 00:08:25,810 we can now use destructuring because this value 142 142 00:08:25,810 --> 00:08:28,200 is exactly the same as this. 143 143 00:08:28,200 --> 00:08:30,710 And so we're reading from this object 144 144 00:08:30,710 --> 00:08:32,273 and so we can simply do this. 145 145 00:08:33,510 --> 00:08:36,703 So another nice use case of destructuring right there. 146 146 00:08:37,890 --> 00:08:41,310 And so now, what we want to do is to basically go 147 147 00:08:41,310 --> 00:08:43,960 to the slide that we just selected. 148 148 00:08:43,960 --> 00:08:46,920 And so one more time, it's now very handy 149 149 00:08:46,920 --> 00:08:49,360 to have this goToSlide function here, 150 150 00:08:49,360 --> 00:08:52,173 inside its own separate function. 151 151 00:08:54,670 --> 00:08:55,943 So goToSlide 152 152 00:08:57,482 --> 00:09:00,350 and then with the slide number that we just read 153 153 00:09:00,350 --> 00:09:01,513 from the data set. 154 154 00:09:03,200 --> 00:09:04,290 So let's test that 155 155 00:09:05,730 --> 00:09:07,300 and it works. 156 156 00:09:07,300 --> 00:09:10,620 So slide two, let's see slide one 157 157 00:09:10,620 --> 00:09:12,653 let's go straight to the last one, 158 158 00:09:14,120 --> 00:09:16,090 and jumped over all the others 159 159 00:09:16,090 --> 00:09:18,500 and now we are at the last one. 160 160 00:09:18,500 --> 00:09:21,620 And of course we can combine this now with the buttons 161 161 00:09:21,620 --> 00:09:23,453 and with the keyboard arrows. 162 162 00:09:25,690 --> 00:09:30,690 And so yeah, great, this works as well. 163 163 00:09:30,810 --> 00:09:33,380 Now all we need to do is to also show 164 164 00:09:33,380 --> 00:09:36,150 which is the current slide. 165 165 00:09:36,150 --> 00:09:39,420 So activate this dot basically. 166 166 00:09:39,420 --> 00:09:42,320 So give it this different background color. 167 167 00:09:42,320 --> 00:09:46,330 So that's also pretty common in a slider like this 168 168 00:09:46,330 --> 00:09:49,570 and let me actually show it to you. 169 169 00:09:49,570 --> 00:09:53,460 So all we do as always, is to give it a special class. 170 170 00:09:53,460 --> 00:09:55,823 So the dots dot active class. 171 171 00:09:56,850 --> 00:10:00,930 So let's go back and let's do that not here, 172 172 00:10:00,930 --> 00:10:02,640 but in another function, 173 173 00:10:02,640 --> 00:10:06,000 because we need this functionality in many places. 174 174 00:10:06,000 --> 00:10:08,340 So whenever we change the slide, 175 175 00:10:08,340 --> 00:10:11,283 we will also need to change the indicator here. 176 176 00:10:12,530 --> 00:10:14,970 So no matter if we click on one of the dots, 177 177 00:10:14,970 --> 00:10:17,840 or if we just use these buttons here, 178 178 00:10:17,840 --> 00:10:19,310 whenever we changed the slide, 179 179 00:10:19,310 --> 00:10:23,860 we want to change which slide is currently the active one. 180 180 00:10:23,860 --> 00:10:26,780 And so we're gonna create a completely different function 181 181 00:10:26,780 --> 00:10:27,613 for that. 182 182 00:10:29,060 --> 00:10:30,910 And let's do it here after CreateDots 183 183 00:10:34,400 --> 00:10:36,820 so activateDot 184 184 00:10:39,240 --> 00:10:41,222 and here we need to again, 185 185 00:10:41,222 --> 00:10:44,763 then pass in the current slide, basically. 186 186 00:10:46,400 --> 00:10:47,893 So how will we do that? 187 187 00:10:48,750 --> 00:10:50,420 Well it's gonna be a bit similar 188 188 00:10:50,420 --> 00:10:52,870 to what we have here with these buttons. 189 189 00:10:52,870 --> 00:10:56,090 So here we also have like an active class to show 190 190 00:10:56,090 --> 00:10:59,170 which one is the active button here. 191 191 00:10:59,170 --> 00:11:03,610 And to do that, remember, before we activated one of them, 192 192 00:11:03,610 --> 00:11:05,933 we first dectivated all of them. 193 193 00:11:06,890 --> 00:11:08,853 And so here, we are gonna do the same. 194 194 00:11:10,350 --> 00:11:12,470 So we will select all of the dots, 195 195 00:11:12,470 --> 00:11:14,960 each time that we want to activate one. 196 196 00:11:14,960 --> 00:11:18,200 And we will then remove that active class, 197 197 00:11:18,200 --> 00:11:22,100 and then add it only on the one that we're interested in. 198 198 00:11:22,100 --> 00:11:24,313 So let's select all the dots. 199 199 00:11:25,650 --> 00:11:27,997 So that's document.querySelector 200 200 00:11:29,460 --> 00:11:30,893 and actually querySelectorAll, 201 201 00:11:31,980 --> 00:11:35,563 and so the dots are the one that have this class. 202 202 00:11:39,800 --> 00:11:41,100 And then for each of them, 203 203 00:11:43,882 --> 00:11:45,693 so let's call it dot, 204 204 00:11:48,220 --> 00:11:52,250 we want to say dot.classList.remove 205 205 00:11:54,180 --> 00:11:58,600 this class dash dash active. 206 206 00:11:58,600 --> 00:12:03,560 So that's the first step of removing all the active classes 207 207 00:12:03,560 --> 00:12:05,530 and then we will edit on the on the one 208 208 00:12:05,530 --> 00:12:06,873 that we are interested in. 209 209 00:12:07,970 --> 00:12:11,163 So how do we select the one that we actually want? 210 210 00:12:12,010 --> 00:12:16,630 Well, we can do that also based on the data attribute. 211 211 00:12:16,630 --> 00:12:18,900 So that's gonna be a bit too complicated. 212 212 00:12:18,900 --> 00:12:20,163 So let me show you how. 213 213 00:12:22,410 --> 00:12:24,880 So document.query.Selector 214 214 00:12:24,880 --> 00:12:26,090 and so here the query 215 215 00:12:26,090 --> 00:12:28,403 is gonna be a little bit more complicated. 216 216 00:12:29,270 --> 00:12:32,890 So it's still dots underscore, underscore dot 217 217 00:12:32,890 --> 00:12:36,433 but now we want to select based on the data slide attribute. 218 218 00:12:37,530 --> 00:12:41,050 So basically based on this attribute. 219 219 00:12:41,050 --> 00:12:43,203 And we can create a selector for that. 220 220 00:12:45,820 --> 00:12:48,920 So remember how previously we use these brackets 221 221 00:12:48,920 --> 00:12:52,000 to select four images with a certain attribute 222 222 00:12:52,000 --> 00:12:53,930 and so here we can do that as well, 223 223 00:12:53,930 --> 00:12:57,310 and even check if they have a certain value. 224 224 00:12:57,310 --> 00:13:01,057 So data slide equals, 225 225 00:13:01,057 --> 00:13:05,173 and so they should have exactly the value of slide. 226 226 00:13:06,476 --> 00:13:09,320 And so then, the selected dot 227 227 00:13:09,320 --> 00:13:14,150 we can add to the classList or class. 228 228 00:13:14,150 --> 00:13:15,323 So the active class, 229 229 00:13:17,780 --> 00:13:19,113 just like this. 230 230 00:13:20,330 --> 00:13:23,800 So let's say we pass in slide number two, 231 231 00:13:23,800 --> 00:13:26,340 so we want to activate the dot corresponding 232 232 00:13:26,340 --> 00:13:28,150 to slide number two. 233 233 00:13:28,150 --> 00:13:29,850 And so here in this querySelector, 234 234 00:13:30,780 --> 00:13:33,950 we can basically select the element with this class, 235 235 00:13:33,950 --> 00:13:38,950 and with this data slide attribute set to two. 236 236 00:13:39,250 --> 00:13:42,490 So right like this, okay, 237 237 00:13:42,490 --> 00:13:44,978 and here that's active. 238 238 00:13:44,978 --> 00:13:48,240 And so now, that should actually be working already. 239 239 00:13:48,240 --> 00:13:51,270 All we need to do is now call this function here 240 240 00:13:51,270 --> 00:13:53,083 in all the necessary places. 241 241 00:13:53,980 --> 00:13:56,230 So when we go to the next slide, 242 242 00:13:56,230 --> 00:13:58,250 we go to the slide of course, 243 243 00:13:58,250 --> 00:14:00,723 and then we also want to activate the dot. 244 244 00:14:02,630 --> 00:14:04,363 And also on the current slide, 245 245 00:14:05,507 --> 00:14:08,080 and then the same when we go to the previous slide 246 246 00:14:09,776 --> 00:14:14,440 activateDot with the current slide and finally, 247 247 00:14:14,440 --> 00:14:16,683 when we click on one of the dots. 248 248 00:14:17,940 --> 00:14:19,280 so activateDot 249 249 00:14:21,010 --> 00:14:22,613 and here it's just called slide. 250 250 00:14:25,001 --> 00:14:26,563 Okay, let's try that, 251 251 00:14:27,630 --> 00:14:30,550 and did it work or not? 252 252 00:14:30,550 --> 00:14:33,732 Well, it's hard to see, actually here 253 253 00:14:33,732 --> 00:14:36,140 because of these images, 254 254 00:14:36,140 --> 00:14:37,053 but, 255 255 00:14:38,150 --> 00:14:40,280 yeah apparently it is working. 256 256 00:14:40,280 --> 00:14:43,130 Although it looks kind of the same as all the other dots. 257 257 00:14:44,620 --> 00:14:48,690 So let's change that here to style, 258 258 00:14:48,690 --> 00:14:50,733 but it's very hard here. 259 259 00:14:52,070 --> 00:14:54,803 So let me change the the class here. 260 260 00:15:00,270 --> 00:15:02,393 So let's actually change it to white. 261 261 00:15:03,870 --> 00:15:05,713 So we activate this one here, 262 262 00:15:06,870 --> 00:15:09,990 now, and yeah, you can see that it actually works. 263 263 00:15:09,990 --> 00:15:11,993 So now that's a bit better visible. 264 264 00:15:14,840 --> 00:15:18,420 So that works just fine in all directions 265 265 00:15:18,420 --> 00:15:20,750 so even with the arrow of course, 266 266 00:15:20,750 --> 00:15:24,490 and when we click a dot, then the same works as well. 267 267 00:15:24,490 --> 00:15:28,360 There's just one problem which is when we reload this, 268 268 00:15:28,360 --> 00:15:30,483 then none of the slides is active. 269 269 00:15:31,800 --> 00:15:35,850 So let's go back here and also in the beginning call 270 270 00:15:35,850 --> 00:15:39,773 this activateDot function with slide zero. 271 271 00:15:41,170 --> 00:15:44,473 So activateDot zero. 272 272 00:15:46,480 --> 00:15:50,150 And so now you see the first dot is now active. 273 273 00:15:50,150 --> 00:15:55,150 Great, so that's actually it, our slider is working now. 274 274 00:15:55,486 --> 00:15:58,770 Let's just refactor our code just a little bit 275 275 00:15:58,770 --> 00:16:00,860 and make it a bit better. 276 276 00:16:00,860 --> 00:16:05,550 So for example, we have all of these function calls here. 277 277 00:16:05,550 --> 00:16:08,020 So let's put them all in the same function, 278 278 00:16:08,020 --> 00:16:09,560 which I'm gonna call init. 279 279 00:16:10,410 --> 00:16:14,750 So an init function an initialization function. 280 280 00:16:14,750 --> 00:16:16,703 So here we have our event handlers. 281 281 00:16:20,280 --> 00:16:23,120 And then here, our functions. 282 282 00:16:23,120 --> 00:16:26,163 So I'm calling the function that doesn't even exist yet. 283 283 00:16:27,290 --> 00:16:28,123 So, 284 284 00:16:30,890 --> 00:16:32,550 that's better. 285 285 00:16:32,550 --> 00:16:35,370 And now I will simply put all of these here, 286 286 00:16:35,370 --> 00:16:37,920 just so that we know a bit better what exactly 287 287 00:16:37,920 --> 00:16:41,530 we are gonna do in the beginning, basically, 288 288 00:16:41,530 --> 00:16:43,163 to initialize our slider. 289 289 00:16:45,290 --> 00:16:47,610 And there should be one more, 290 290 00:16:47,610 --> 00:16:49,860 Yeah that's to create the dots. 291 291 00:16:49,860 --> 00:16:53,870 And that should probably happen before we activate any dot. 292 292 00:16:53,870 --> 00:16:56,463 Otherwise that's not gonna work probably. 293 293 00:16:58,490 --> 00:17:01,400 So here we have them or functions. 294 294 00:17:01,400 --> 00:17:03,273 Let's just write that here as well. 295 295 00:17:05,470 --> 00:17:07,670 And this one we don't need any more in fact. 296 296 00:17:10,680 --> 00:17:12,180 And now just to finish, 297 297 00:17:12,180 --> 00:17:16,850 let's actually put all of this code into a function as well. 298 298 00:17:16,850 --> 00:17:20,483 And so this way, we do not pollute the global namespace. 299 299 00:17:21,530 --> 00:17:23,280 So that's something we like to say. 300 300 00:17:23,280 --> 00:17:26,340 And we're gonna talk a little bit more about this 301 301 00:17:26,340 --> 00:17:28,950 also later in the course, though. 302 302 00:17:28,950 --> 00:17:32,370 But for now just know that it is a good practice 303 303 00:17:32,370 --> 00:17:34,760 to keep this kind of functionality here, 304 304 00:17:34,760 --> 00:17:36,283 maybe in its own function. 305 305 00:17:40,810 --> 00:17:42,483 So let me, 306 306 00:17:43,970 --> 00:17:45,960 let me actually delete this one 307 307 00:17:45,960 --> 00:17:49,813 and just put one curly brace at the very end here. 308 308 00:17:50,750 --> 00:17:53,693 And then all we need to do is to call that function. 309 309 00:17:55,310 --> 00:17:56,243 And that's it. 310 310 00:17:57,530 --> 00:17:59,640 So now we have our slider working 311 311 00:17:59,640 --> 00:18:03,290 and we could now actually even passed in some values here, 312 312 00:18:03,290 --> 00:18:05,070 and to make this even more complete, 313 313 00:18:05,070 --> 00:18:09,000 we could actually pass in, like some options here. 314 314 00:18:09,000 --> 00:18:11,780 So we could make this slider function accept 315 315 00:18:11,780 --> 00:18:13,750 a couple of options. 316 316 00:18:13,750 --> 00:18:17,070 So an object, for example, which contains these options 317 317 00:18:17,070 --> 00:18:18,810 and then work with that. 318 318 00:18:18,810 --> 00:18:21,600 But that's a bit too much for this example. 319 319 00:18:21,600 --> 00:18:24,683 But just know that this is a pretty common thing to do. 320 320 00:18:26,100 --> 00:18:28,830 So great, this slider works 321 321 00:18:28,830 --> 00:18:33,830 let's just actually go back to deleting these slides, 322 322 00:18:33,910 --> 00:18:35,480 we don't need them anymore, 323 323 00:18:35,480 --> 00:18:38,300 and put back our original content. 324 324 00:18:38,300 --> 00:18:41,113 And so you will see then that it works just the same. 325 325 00:18:42,270 --> 00:18:44,333 And indeed it does. 326 326 00:18:45,570 --> 00:18:50,223 So I'm just gonna change the color of the dot back here, 327 327 00:18:52,400 --> 00:18:54,153 and then that's it. 328 328 00:18:56,220 --> 00:18:58,490 So everything works the same, 329 329 00:18:58,490 --> 00:19:00,950 no matter how many slides we have. 330 330 00:19:00,950 --> 00:19:03,482 So of course now we have only three dots, 331 331 00:19:03,482 --> 00:19:06,410 but everything just works the same. 332 332 00:19:06,410 --> 00:19:09,940 So the slider is really being built dynamically 333 333 00:19:09,940 --> 00:19:12,110 based on the number of slide elements 334 334 00:19:12,110 --> 00:19:13,873 that we create in our markup. 335 335 00:19:15,587 --> 00:19:20,370 Okay, so we're almost done with this project now 336 336 00:19:20,370 --> 00:19:22,720 there's just two more small lectures 337 337 00:19:22,720 --> 00:19:25,450 in which we're gonna learn a little bit more. 338 338 00:19:25,450 --> 00:19:27,290 And so after reviewing this code 339 339 00:19:27,290 --> 00:19:29,790 for this really cool component, 340 340 00:19:29,790 --> 00:19:33,333 let's then just quickly check out these final two lectures. 29265

Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.