Skip to content

Commit 99f79b1

Browse files
committed
Feature scroll animation added
1 parent 9f03f9d commit 99f79b1

3 files changed

Lines changed: 27 additions & 5 deletions

File tree

index.html

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,19 @@ <h1>⇱ ⇲</h1>
3737

3838
<main class="grid">
3939
<div class="grid__item"></div>
40+
<div class="grid__item show_on_scroll"></div>
4041
<div class="grid__item"></div>
42+
<div class="grid__item show_on_scroll"></div>
4143
<div class="grid__item"></div>
4244
<div class="grid__item"></div>
4345
<div class="grid__item"></div>
4446
<div class="grid__item"></div>
47+
<div class="grid__item show_on_scroll"></div>
48+
<div class="grid__item show_on_scroll"></div>
4549
<div class="grid__item"></div>
4650
<div class="grid__item"></div>
4751
<div class="grid__item"></div>
48-
<div class="grid__item"></div>
49-
<div class="grid__item"></div>
50-
<div class="grid__item"></div>
51-
<div class="grid__item"></div>
52-
<div class="grid__item"></div>
52+
<div class="grid__item show_on_scroll"></div>
5353
<div class="grid__item"></div>
5454
</main>
5555

@@ -84,4 +84,5 @@ <h1>⇱ ⇲</h1>
8484
</div>
8585
</footer>
8686
</body>
87+
<script src="scrollHandler.js"></script>
8788
</html>

scrollHandler.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
const callback = entries => {
2+
entries.forEach(entry => {
3+
entry.isIntersecting ? entry.target.classList.add('is_visible') : entry.target.classList.remove('is_visible')
4+
})
5+
};
6+
7+
const observerAPI = new IntersectionObserver(callback);
8+
9+
const targets = document.querySelectorAll('.show_on_scroll');
10+
11+
targets.forEach(target => observerAPI.observe(target));

styles.css

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,16 @@ header {
139139
background-color: var(--colorSeven);
140140
}
141141

142+
.is_visible {
143+
opacity: 1 !important;
144+
transform: translateY(0px) !important;
145+
}
146+
147+
.show_on_scroll {
148+
transition: transform 2s, opacity 1s;
149+
opacity: 0;
150+
transform: translateY(80px);
151+
}
142152
/* Footer */
143153
.footer {
144154
display: grid;

0 commit comments

Comments
 (0)