diff --git a/scroll-animation/index.html b/scroll-animation/index.html
new file mode 100644
index 0000000..7f2e1d0
--- /dev/null
+++ b/scroll-animation/index.html
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+ Scroll Animation
+
+
+ Scroll to see the animation
+ Content
+ Content
+ Content
+ Content
+ Content
+ Content
+ Content
+ Content
+ Content
+ Content
+ Content
+ Content
+ Content
+
+
+
diff --git a/scroll-animation/script.js b/scroll-animation/script.js
new file mode 100644
index 0000000..f021563
--- /dev/null
+++ b/scroll-animation/script.js
@@ -0,0 +1,19 @@
+const boxes = document.querySelectorAll('.box')
+
+window.addEventListener('scroll', checkBoxes)
+
+checkBoxes()
+
+function checkBoxes() {
+ const triggerBottom = window.innerHeight / 5 * 4
+
+ boxes.forEach(box => {
+ const boxTop = box.getBoundingClientRect().top
+
+ if(boxTop < triggerBottom) {
+ box.classList.add('show')
+ } else {
+ box.classList.remove('show')
+ }
+ })
+}
\ No newline at end of file
diff --git a/scroll-animation/style.css b/scroll-animation/style.css
new file mode 100644
index 0000000..a0e7490
--- /dev/null
+++ b/scroll-animation/style.css
@@ -0,0 +1,47 @@
+@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
+
+* {
+ box-sizing: border-box;
+}
+
+body {
+ background-color: #efedd6;
+ font-family: 'Roboto', sans-serif;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ margin: 0;
+ overflow-x: hidden;
+}
+
+h1 {
+ margin: 10px;
+}
+
+.box {
+ background-color: steelblue;
+ color: #fff;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 400px;
+ height: 200px;
+ margin: 10px;
+ border-radius: 10px;
+ box-shadow: 2px 4px 5px rgba(0, 0, 0, 0.3);
+ transform: translateX(400%);
+ transition: transform 0.4s ease;
+}
+
+.box:nth-of-type(even) {
+ transform: translateX(-400%);
+}
+
+.box.show {
+ transform: translateX(0);
+}
+
+.box h2 {
+ font-size: 45px;
+}