Skip to content

Commit d386cd4

Browse files
committed
finish the tabs section project
1 parent b119eda commit d386cd4

File tree

4 files changed

+248
-0
lines changed

4 files changed

+248
-0
lines changed

TabsSection/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Tabs Section | Sekmeler Bölümü
2+
3+
## Project Description | Proje Açıklaması
4+
5+
Kullanıcı tarafından tıklanan sekmenin içeriğini kullanıcıya gösterip diğer sekmelerdeki içerikleri gizleyerek sekmeler arası geçiş yapmayı sağlayan bu uygulamayı [orijinal hali](https://www.100jsprojects.com/project/tabs)ne uygun şekilde yapmaya çalıştım.
6+
7+
### [Live Preview Link | Canlı Önizleme Bağlantısı](https://htmlpreview.github.io/?https://github.com/selimbiber/PureJavaScriptProjects/blob/main/TabsSection/index.html)

TabsSection/index.html

+57
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<link rel="stylesheet" href="styles.css" />
7+
<title>Tabs Section</title>
8+
</head>
9+
<body>
10+
<main id="container">
11+
<figure id="img-section">
12+
<img
13+
src="https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Fwww.hdnicewallpapers.com%2FWalls%2FBig%2FNature%2520and%2520Landscape%2FBeautiful_Sunrising_Nature_Image.jpg&f=1&nofb=1"
14+
alt="landspace image"
15+
/>
16+
</figure>
17+
<section id="tabs-section">
18+
<ul id="tabs-switch-area">
19+
<li id="step-1-switch" class="active-tab">Step 1</li>
20+
<li id="step-2-switch">Step 2</li>
21+
<li id="step-3-switch">Step 3</li>
22+
</ul>
23+
<article id="tabs-show-area">
24+
<h2 id="tabs-area-heading">Step 1</h2>
25+
<p id="step-1-text">
26+
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Cupiditate
27+
inventore odio laboriosam enim exercitationem excepturi voluptatum
28+
illo itaque perspiciatis, laborum optio neque facere, aliquam cum,
29+
id ipsam! Quibusdam, aliquid maiores! Sequi quae obcaecati
30+
inventore, excepturi non eaque molestiae delectus accusantium
31+
nesciunt recusandae esse magnam rerum quam earum qui iusto in?
32+
Consequatur, ipsam?
33+
</p>
34+
<p id="step-2-text">
35+
Lorem ipsum dolor sit amet consectetur adipisicing elit. Quaerat qui
36+
necessitatibus, consectetur atque ab assumenda voluptas? Fuga,
37+
quibusdam accusamus labore deleniti pariatur soluta quos quisquam
38+
ut! Possimus tenetur soluta sapiente. Earum provident blanditiis
39+
ullam culpa a sint, molestiae dolor eligendi alias nemo dignissimos,
40+
quaerat quisquam quo optio iste possimus. Aliquam, ex cumque? Rerum
41+
a ipsum officiis labore assumenda quibusdam mollitia.
42+
</p>
43+
<p id="step-3-text">
44+
Lorem ipsum, dolor sit amet consectetur adipisicing elit. Eos odit
45+
fuga, blanditiis ipsam exercitationem, at vitae similique modi
46+
necessitatibus quaerat autem minima sunt. Explicabo, rerum optio
47+
officiis quasi rem hic! Minus quo natus debitis voluptates maiores
48+
ut, deleniti perferendis enim fugit suscipit cum alias asperiores
49+
modi aspernatur perspiciatis explicabo quis dolorum eum, iste
50+
assumenda, maxime commodi. Veniam sequi omnis commodi?
51+
</p>
52+
</article>
53+
</section>
54+
</main>
55+
<script src="./main.js"></script>
56+
</body>
57+
</html>

TabsSection/main.js

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
const STEP_1_SWITCH = document.getElementById('step-1-switch')
2+
const STEP_2_SWITCH = document.getElementById('step-2-switch')
3+
const STEP_3_SWITCH = document.getElementById('step-3-switch')
4+
const TABS_AREA_HEADING = document.getElementById('tabs-area-heading')
5+
const STEP_1_TEXT = document.getElementById('step-1-text')
6+
const STEP_2_TEXT = document.getElementById('step-2-text')
7+
const STEP_3_TEXT = document.getElementById('step-3-text')
8+
9+
let activeTab;
10+
11+
STEP_1_SWITCH.addEventListener( 'click', () => setActiveTab('Step1') );
12+
STEP_2_SWITCH.addEventListener( 'click', () => setActiveTab('Step2') );
13+
STEP_3_SWITCH.addEventListener( 'click', () => setActiveTab('Step3') );
14+
15+
function setActiveTab (currentTab) {
16+
STEP_1_SWITCH.classList = '';
17+
STEP_2_SWITCH.classList = '';
18+
STEP_3_SWITCH.classList = '';
19+
activeTab = currentTab;
20+
function showActiveTabArea () {
21+
if (activeTab === 'Step1') {
22+
STEP_1_SWITCH.classList.add('active-tab')
23+
TABS_AREA_HEADING.textContent = 'Step 1'
24+
STEP_1_TEXT.style.display = 'block'
25+
26+
STEP_2_TEXT.style.display = 'none'
27+
STEP_3_TEXT.style.display = 'none'
28+
} else if (activeTab === 'Step2') {
29+
STEP_2_SWITCH.classList.add('active-tab')
30+
TABS_AREA_HEADING.textContent = 'Step 2'
31+
STEP_2_TEXT.style.display = 'block'
32+
33+
STEP_1_TEXT.style.display = 'none'
34+
STEP_3_TEXT.style.display = 'none'
35+
} else if (activeTab === 'Step3') {
36+
STEP_3_SWITCH.classList.add('active-tab')
37+
TABS_AREA_HEADING.textContent = 'Step 3'
38+
STEP_3_TEXT.style.display = 'block'
39+
40+
STEP_1_TEXT.style.display = 'none'
41+
STEP_2_TEXT.style.display = 'none'
42+
}
43+
}
44+
showActiveTabArea()
45+
}

TabsSection/styles.css

+139
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,139 @@
1+
/* RESET */
2+
#root, #__next {
3+
isolation: isolate;
4+
}
5+
6+
html {
7+
box-sizing: border-box;
8+
font-size: 62.5%;
9+
}
10+
11+
*,
12+
*::before,
13+
*::after {
14+
box-sizing: inherit;
15+
margin: 0;
16+
padding: 0;
17+
}
18+
19+
@media (prefers-reduced-motion: reduce) {
20+
*,
21+
*::before,
22+
*::after {
23+
animation-duration: 0.01ms !important;
24+
animation-iteration-count: 1 !important;
25+
transition-duration: 0.01ms !important;
26+
scroll-behavior: auto !important;
27+
}
28+
}
29+
30+
body {
31+
font-size: 1.6rem;
32+
min-height: 100vh;
33+
max-width: 100vw;
34+
scroll-behavior: smooth;
35+
text-rendering: optimizeSpeed;
36+
line-height: 1.5;
37+
display: flex;
38+
justify-content: center;
39+
align-items: center;
40+
font-family: Arial, Helvetica, sans-serif;
41+
background-color: pink;
42+
width: 90%;
43+
margin: 0 auto;
44+
padding: 6rem 0;
45+
}
46+
47+
ul[class],
48+
ol[class],
49+
li {
50+
list-style: none;
51+
}
52+
/*****/
53+
54+
#container {
55+
display: flex;
56+
justify-content: center;
57+
align-items: center;
58+
width: 100%;
59+
gap: 3rem;
60+
flex-wrap: wrap;
61+
}
62+
63+
#img-section {
64+
min-width: 50%;
65+
width: auto;
66+
}
67+
68+
#img-section > img {
69+
min-height: 50rem;
70+
width: 100%;
71+
border-radius: 1rem;
72+
}
73+
74+
#tabs-section {
75+
min-height: 50rem;
76+
width: auto;
77+
border-radius: 1rem;
78+
background-color: rgb(250, 210, 229);
79+
}
80+
81+
#tabs-switch-area {
82+
display: grid;
83+
grid-template-columns: 1fr 1fr 1fr;
84+
}
85+
86+
li {
87+
border: 0;
88+
height: 5rem;
89+
background-color:lightskyblue;
90+
display: flex;
91+
justify-content: center;
92+
align-items: center;
93+
letter-spacing: .5rem;
94+
font-weight: bold;
95+
cursor: pointer;
96+
}
97+
98+
#tabs-switch-area li:first-child {
99+
border-top-left-radius: 1rem;
100+
}
101+
102+
#tabs-switch-area li:last-child {
103+
border-top-right-radius: 1rem;
104+
}
105+
106+
#tabs-switch-area li:hover:not(.active-tab) {
107+
background-color:deeppink;
108+
transition: all 0.3s linear;
109+
}
110+
111+
.active-tab {
112+
background-color: rgb(250, 210, 229);
113+
cursor: not-allowed;
114+
}
115+
116+
#tabs-show-area {
117+
min-height: 45rem;
118+
padding: 5rem 3rem;
119+
color: lightslategray;
120+
}
121+
122+
#tabs-area-heading {
123+
font-size: 2rem;
124+
}
125+
126+
#tabs-show-area p {
127+
margin-top: 1rem;
128+
}
129+
130+
#step-2-text, #step-3-text {
131+
display: none;
132+
}
133+
134+
/* For Big Screen Devices */
135+
@media screen and (min-width: 1440px) {
136+
#container {
137+
flex-wrap: nowrap;
138+
}
139+
}

0 commit comments

Comments
 (0)