All language subtitles for 4. Building a “sticky” navigation - 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
eo Esperanto
et Estonian
tl Filipino
fi Finnish
fr French Download
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
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,412 --> 00:00:02,864 Welcome to part two 2 2 00:00:02,864 --> 00:00:05,105 of Building a sticky navigation. 3 3 00:00:05,105 --> 00:00:08,309 In this video we'll use jQuery to make this 4 4 00:00:08,309 --> 00:00:11,559 sticky navigation work the way want it. 5 5 00:00:12,628 --> 00:00:17,202 So, in order to do that, we use a simple jQuery plugin 6 6 00:00:17,202 --> 00:00:18,886 which is called Waypoints. 7 7 00:00:18,886 --> 00:00:22,589 And Waypoints is an easy way to trigger a function 8 8 00:00:22,589 --> 00:00:26,756 when we scroll to an element, which is exactly what we want. 9 9 00:00:28,023 --> 00:00:31,308 So I will start downloading it 10 10 00:00:31,308 --> 00:00:33,975 and including it in our project. 11 11 00:00:38,030 --> 00:00:39,197 So here it is. 12 12 00:00:41,548 --> 00:00:42,715 And extract it 13 13 00:00:47,110 --> 00:00:51,277 and well, this comes with a bunch of stuff actually 14 14 00:00:52,346 --> 00:00:55,034 but the file that we want is this one here 15 15 00:00:55,034 --> 00:00:58,284 jQuery waypoints and the small version. 16 16 00:00:59,834 --> 00:01:01,084 So I'll copy it 17 17 00:01:05,001 --> 00:01:06,001 and omnifood 18 18 00:01:07,949 --> 00:01:11,792 and Vendors because this time it is a JavaScript file 19 19 00:01:11,792 --> 00:01:16,773 that we got from the internet, it's not our own file. 20 20 00:01:16,773 --> 00:01:19,081 And actually I think it's time to 21 21 00:01:19,081 --> 00:01:21,614 delete this old stuff here. 22 22 00:01:21,614 --> 00:01:23,364 We don't need anymore 23 23 00:01:24,882 --> 00:01:27,065 and this as well. 24 24 00:01:27,065 --> 00:01:31,929 Okay so we have a nice, clean folder structure here. 25 25 00:01:31,929 --> 00:01:35,993 And I'm now going to include this in our project 26 26 00:01:35,993 --> 00:01:38,594 so that we don't forget it. 27 27 00:01:38,594 --> 00:01:42,094 So we come down here and I'll put it here. 28 28 00:01:46,396 --> 00:01:50,063 So as before, script and now it's Vendors js 29 29 00:01:51,145 --> 00:01:52,591 and here we go. 30 30 00:01:52,591 --> 00:01:56,446 So our own script is always the last one here. 31 31 00:01:56,446 --> 00:02:00,613 We need to ensure that this is the last script we call. 32 32 00:02:02,402 --> 00:02:05,316 So, let's go to the Waypoints website 33 33 00:02:05,316 --> 00:02:08,149 and take a look at how this works. 34 34 00:02:09,716 --> 00:02:13,883 So here in jQuery, and this is here the way that we 35 35 00:02:14,896 --> 00:02:16,069 want to use this. 36 36 00:02:16,069 --> 00:02:18,391 And here is actually kind of a demo, so we scroll 37 37 00:02:18,391 --> 00:02:22,558 and then some stuff happens on the website, right. 38 38 00:02:23,696 --> 00:02:26,715 So I will now go ahead and copy this snippet here 39 39 00:02:26,715 --> 00:02:30,882 so that we can see how Waypoints should be used with jQuery. 40 40 00:02:34,413 --> 00:02:37,652 I'll put it here in a comment 41 41 00:02:37,652 --> 00:02:41,112 and you see the comment in jQuery 42 42 00:02:41,112 --> 00:02:44,779 are done the exact same way as we do in CSS. 43 43 00:02:47,253 --> 00:02:49,920 So, how do we want this to work? 44 44 00:02:51,154 --> 00:02:53,453 Let's go back to our webpage 45 45 00:02:53,453 --> 00:02:57,191 and the thing is we want this to appear 46 46 00:02:57,191 --> 00:03:02,091 so we want this sticky navigation to appear each time 47 47 00:03:02,091 --> 00:03:05,258 we scroll to this element here, right. 48 48 00:03:07,408 --> 00:03:09,637 So we want it to be hidden here 49 49 00:03:09,637 --> 00:03:14,548 and we want it to appear once we come to this section. 50 50 00:03:14,548 --> 00:03:17,230 All right, so the first step is to actually select 51 51 00:03:17,230 --> 00:03:19,147 this section in jQuery. 52 52 00:03:20,887 --> 00:03:25,717 So we already know how to do that with this selector, 53 53 00:03:25,717 --> 00:03:29,384 and now we need a class name such as in CSS. 54 54 00:03:30,814 --> 00:03:32,481 And now, the section 55 55 00:03:35,667 --> 00:03:39,092 is this one, and we could go ahead 56 56 00:03:39,092 --> 00:03:41,809 and just use this class name 57 57 00:03:41,809 --> 00:03:44,816 but we want a cleaner separation here 58 58 00:03:44,816 --> 00:03:47,733 between the CSS and the JavaScript, 59 59 00:03:48,600 --> 00:03:50,017 and the jQuery in this case. 60 60 00:03:50,017 --> 00:03:53,395 So we don't want to mix up these two things 61 61 00:03:53,395 --> 00:03:57,562 so we will create a separate class for JavaScript. 62 62 00:03:58,422 --> 00:04:01,998 So this is much cleaner, and if you have bigger projects 63 63 00:04:01,998 --> 00:04:05,516 it will become easier to manage this way. 64 64 00:04:05,516 --> 00:04:07,516 So section and features. 65 65 00:04:09,463 --> 00:04:13,046 And here we have two dashes, so to separate 66 66 00:04:14,816 --> 00:04:17,335 this name from this name in a better way. 67 67 00:04:17,335 --> 00:04:20,085 So I will select this in a script 68 68 00:04:21,061 --> 00:04:24,811 and actually just close these two, all right. 69 69 00:04:26,030 --> 00:04:30,988 And now this is where our Waypoint's plugin comes in. 70 70 00:04:30,988 --> 00:04:33,905 So now we the Waypoints method here 71 71 00:04:36,668 --> 00:04:40,325 and this is how it works, such as it's down here. 72 72 00:04:40,325 --> 00:04:43,274 So function and then this function 73 73 00:04:43,274 --> 00:04:46,024 has an argument called direction. 74 74 00:04:48,092 --> 00:04:52,028 And what this direction means is that we can actually detect 75 75 00:04:52,028 --> 00:04:54,594 if the user is scrolling down the webpage 76 76 00:04:54,594 --> 00:04:56,616 or if he's scrolling up. 77 77 00:04:56,616 --> 00:04:58,381 And we will take now a decision 78 78 00:04:58,381 --> 00:05:00,798 based on this parameter here. 79 79 00:05:03,280 --> 00:05:06,514 So, if you're new to programming, 80 80 00:05:06,514 --> 00:05:09,741 we have a thing in programming in all major 81 81 00:05:09,741 --> 00:05:14,009 programming languages which is called the If Construct 82 82 00:05:14,009 --> 00:05:17,423 and what the If does is very simple. 83 83 00:05:17,423 --> 00:05:21,590 So if something is true, then a certain thing will happen, 84 84 00:05:22,765 --> 00:05:26,480 and if it's not true, well then another thing happens. 85 85 00:05:26,480 --> 00:05:28,640 Now in this case we want to say 86 86 00:05:28,640 --> 00:05:30,723 if the direction is down, 87 87 00:05:33,841 --> 00:05:36,674 then something happens and if not, 88 88 00:05:38,241 --> 00:05:41,225 well then something else happens. 89 89 00:05:41,225 --> 00:05:43,725 And what do we want to happen? 90 90 00:05:44,685 --> 00:05:47,852 So if the user scrolls down like this, 91 91 00:05:49,700 --> 00:05:52,788 we want the sticky navigation to appear. 92 92 00:05:52,788 --> 00:05:56,504 And if the user scrolls up like this, 93 93 00:05:56,504 --> 00:05:59,087 then we want this to disappear. 94 94 00:06:02,680 --> 00:06:05,013 So we select the nav element 95 95 00:06:08,402 --> 00:06:11,804 and then in jQuery we have this very handy method 96 96 00:06:11,804 --> 00:06:15,821 and this is actually a jQuery method and had nav 97 97 00:06:15,821 --> 00:06:17,805 and has nothing to do with Waypoints 98 98 00:06:17,805 --> 00:06:19,472 and it is add class. 99 99 00:06:22,426 --> 00:06:27,338 And of course, the class we want to add is sticky. 100 100 00:06:27,338 --> 00:06:30,217 So I will now remove this from here. 101 101 00:06:30,217 --> 00:06:32,134 We no longer need this. 102 102 00:06:33,257 --> 00:06:35,757 So this is the original state. 103 103 00:06:37,692 --> 00:06:39,608 So, when a user scrolls down, 104 104 00:06:39,608 --> 00:06:42,487 then this class sticky will be added. 105 105 00:06:42,487 --> 00:06:46,654 And the other way around, so if the user scrolls up, 106 106 00:06:49,406 --> 00:06:52,989 then remove the class, remove class sticky. 107 107 00:07:01,330 --> 00:07:03,997 So I think this should work now. 108 108 00:07:05,242 --> 00:07:07,825 Here is Waypoint, not Waypoints 109 109 00:07:10,861 --> 00:07:14,414 and now let's go and check this out. 110 110 00:07:14,414 --> 00:07:16,794 So this is the normal state, again so this is how 111 111 00:07:16,794 --> 00:07:20,961 it should look in a normal way, and now this works. 112 112 00:07:25,560 --> 00:07:28,204 So we scrolled past this place here 113 113 00:07:28,204 --> 00:07:31,605 which is the beginning of the section, 114 114 00:07:31,605 --> 00:07:34,614 and then this appears like magic. 115 115 00:07:34,614 --> 00:07:36,614 This is very cool right. 116 116 00:07:37,633 --> 00:07:41,783 But we want it even better because you know, 117 117 00:07:41,783 --> 00:07:44,941 when we come here, now there is no space 118 118 00:07:44,941 --> 00:07:47,530 between this navigation and this title here. 119 119 00:07:47,530 --> 00:07:50,629 So you want this to happen a little sooner. 120 120 00:07:50,629 --> 00:07:55,169 So let's say we want this to happen when we're here 121 121 00:07:55,169 --> 00:07:57,724 and not only down here. 122 122 00:07:57,724 --> 00:08:01,807 So we can easily do that here with this extension 123 123 00:08:02,867 --> 00:08:05,305 and is actually explained down here. 124 124 00:08:05,305 --> 00:08:08,638 So I'll just copy this and paste it here 125 125 00:08:11,481 --> 00:08:14,314 so we can specify some offset here 126 126 00:08:15,428 --> 00:08:19,552 in percent, but I will do it as in pixels, 127 127 00:08:19,552 --> 00:08:23,697 so let's say 60 pixel, so this will happen 60 pixels 128 128 00:08:23,697 --> 00:08:27,280 before we hit this section that we defined. 129 129 00:08:31,986 --> 00:08:34,319 So let's check that as well, 130 130 00:08:36,178 --> 00:08:39,595 and yeah, so this happens at a cool place 131 131 00:08:41,402 --> 00:08:45,569 and now from here on this navigation always stays in place. 132 132 00:08:48,682 --> 00:08:51,805 Now, you saw something strange happen here 133 133 00:08:51,805 --> 00:08:53,388 which was this one. 134 134 00:08:54,625 --> 00:08:58,792 So the navigation kind of is behind of the images, right. 135 135 00:09:00,280 --> 00:09:04,843 So I will have to show you yet one more CSS property 136 136 00:09:04,843 --> 00:09:09,359 and that is actually also kind of an important one 137 137 00:09:09,359 --> 00:09:11,609 and it's this, where is it? 138 138 00:09:14,920 --> 00:09:18,003 We have to say z index, and we set it 139 139 00:09:19,020 --> 00:09:23,187 to the maximum allowed which is 9999, and the z index 140 140 00:09:24,674 --> 00:09:28,257 it finds the vertical stacking of elements. 141 141 00:09:29,201 --> 00:09:32,139 So it's like a stack of elements and now 142 142 00:09:32,139 --> 00:09:35,320 our sticky navigation will be always at the top. 143 143 00:09:35,320 --> 00:09:39,198 So this element will be on top of all the other elements 144 144 00:09:39,198 --> 00:09:43,115 because it has the highest possible value here. 145 145 00:09:45,061 --> 00:09:47,061 So let's check that out. 146 146 00:09:49,911 --> 00:09:54,078 So you see right now this is over all the other elements. 147 147 00:09:56,029 --> 00:09:57,862 So it's always on top. 148 148 00:09:59,466 --> 00:10:01,033 Great, this is exactly what we want. 149 149 00:10:01,033 --> 00:10:03,146 Now something weird happened here, I don't know 150 150 00:10:03,146 --> 00:10:04,690 exactly why this happened. 151 151 00:10:04,690 --> 00:10:08,452 We lost some space here that we had before, 152 152 00:10:08,452 --> 00:10:09,952 let me check that. 153 153 00:10:11,493 --> 00:10:15,326 And yeah, of course, so I have a mistake here. 154 154 00:10:16,927 --> 00:10:19,515 So this is the way to go. 155 155 00:10:19,515 --> 00:10:21,682 So now it will be perfect. 156 156 00:10:22,987 --> 00:10:27,353 So original state, and once again with sticky navigation. 157 157 00:10:27,353 --> 00:10:29,872 So, very powerful stuff, and we will actually 158 158 00:10:29,872 --> 00:10:33,727 use this Waypoint plugin later again because it allows us 159 159 00:10:33,727 --> 00:10:36,246 to make some cool stuff with it. 160 160 00:10:36,246 --> 00:10:39,113 So I hope you liked this lecture and next stop 161 161 00:10:39,113 --> 00:10:41,807 we will learn how to actually scroll to the different 162 162 00:10:41,807 --> 00:10:45,116 sections when we click on these links here. 163 163 00:10:45,116 --> 00:10:46,283 So stay tuned. 14080

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