Skip to content

Commit 41619d3

Browse files
ajustes, expandindo img e marcação de page
1 parent c2179bd commit 41619d3

File tree

4 files changed

+66
-25
lines changed

4 files changed

+66
-25
lines changed

index.html

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ <h3>Funções</h3>
8585
</div>
8686

8787
<div class="card">
88+
<div class="overlay" id="overlay">
89+
8890
<img src="./src/img/identificadores_8.png" alt="Identificadores - Imagem 9">
8991
<h3>Identificadores</h3>
9092
<p class="short-description">Nomes para variáveis, funções, etc., começam com letra, sublinhado ou cifrão.</p>
@@ -107,6 +109,7 @@ <h3>Identificadores</h3>
107109
</div>
108110

109111
<script src="./src/script.js"></script>
112+
<script src="src/expand.js"></script>
110113
</body>
111114

112115
</html>

src/expand.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
const cards = document.querySelectorAll('.card');
2+
3+
cards.forEach((card) => {
4+
const img = card.querySelector('img');
5+
img.addEventListener('click', () => {
6+
expandImage(img);
7+
});
8+
});
9+
10+
function expandImage(img) {
11+
img.classList.toggle('expanded'); // Adiciona ou remove a classe de expansão
12+
13+
// Centraliza a imagem quando expandida
14+
if (img.classList.contains('expanded')) {
15+
// Adiciona uma classe ao body para permitir o overflow hidden
16+
document.body.classList.add('modal-open');
17+
} else {
18+
// Remove a classe do body quando a imagem é recolhida
19+
document.body.classList.remove('modal-open');
20+
}
21+
}

src/script.js

Lines changed: 34 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
//script.js
21
const cardsPerPage = 3;
32
const dataContainer = document.querySelector('.card-container');
43
const pagination = document.getElementById('pagination');
@@ -22,10 +21,14 @@ function updatePagination() {
2221
pageNumbers.textContent = `Page ${currentPage} of ${totalPages}`;
2322
prevButton.disabled = currentPage === 1;
2423
nextButton.disabled = currentPage === totalPages;
24+
25+
// Remove a classe 'active' de todos os elementos da página
2526
pageLinks.forEach((link) => {
26-
const page = parseInt(link.dataset.page);
27-
link.classList.toggle('active', page === currentPage);
27+
link.classList.remove('active');
2828
});
29+
30+
// Adiciona a classe 'active' ao link da página atual
31+
pageLinks[currentPage - 1].classList.add('active');
2932
}
3033

3134
prevButton.addEventListener('click', () => {
@@ -36,11 +39,15 @@ nextButton.addEventListener('click', () => {
3639
currentPage < totalPages && displayPage(++currentPage) && updatePagination();
3740
});
3841

39-
pageLinks.forEach((link) => {
42+
pageLinks.forEach((link, index) => {
4043
link.addEventListener('click', (e) => {
4144
e.preventDefault();
42-
const page = parseInt(link.dataset.page);
43-
page !== currentPage && displayPage(page) && updatePagination();
45+
const page = index + 1;
46+
if (page !== currentPage) {
47+
displayPage(page);
48+
currentPage = page;
49+
updatePagination();
50+
}
4451
});
4552
});
4653

@@ -55,26 +62,12 @@ function expandImage(card) {
5562
cards.forEach((card) => {
5663
card.addEventListener('click', () => {
5764
expandImage(card);
58-
});
5965

60-
// Adiciona um evento de clique para cada botão "Ver Mais"
61-
card.querySelector('.btn-more').addEventListener('click', () => {
62-
const shortDescription = card.querySelector('.short-description');
63-
const fullDescription = card.querySelector('.full-description');
64-
65-
// Alternar a visibilidade dos parágrafos
66-
shortDescription.classList.add('hidden');
67-
fullDescription.classList.remove('hidden');
68-
});
69-
});
70-
71-
displayPage(currentPage);
72-
updatePagination();
73-
//script.js
74-
75-
cards.forEach((card) => {
76-
card.addEventListener('click', () => {
77-
expandImage(card);
66+
// Adiciona temporizador para fechar a imagem após 10 segundos
67+
setTimeout(() => {
68+
const img = card.querySelector('img');
69+
img.classList.remove('expanded');
70+
}, 10000); // Fechar após 10 segundos
7871
});
7972

8073
// Adiciona um evento de clique para cada botão "Ver Mais"
@@ -85,3 +78,19 @@ cards.forEach((card) => {
8578
fullDescription.classList.toggle('visible');
8679
});
8780
});
81+
82+
// Adicionar a lógica fornecida para destacar a página atual na paginação
83+
function updatePagination() {
84+
// Remove a classe 'active' de todos os links de página
85+
pageLinks.forEach((link) => {
86+
link.classList.remove('active');
87+
});
88+
89+
// Adiciona a classe 'active' ao link da página atual
90+
const currentPageLink = document.querySelector(`.page-link[data-page="${currentPage}"]`);
91+
currentPageLink.classList.add('active');
92+
}
93+
94+
// Inicialize a paginação e a lógica de destaque da página atual
95+
updatePagination();
96+
displayPage(currentPage);

src/styles.css

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,10 @@ header {
6464
font-size: 14px;
6565
margin-bottom: 15px;
6666
}
67+
.card img.expanded {
68+
transform: scale(2.1); /* Aumenta o tamanho da imagem em 10% */
69+
transition: transform 0.3s ease-in-out; /* Adiciona uma transição suave */
70+
}
6771

6872
.btn-more {
6973
background-color: #050505;
@@ -107,6 +111,10 @@ header {
107111
.page-numbers a {
108112
margin: 0 5px;
109113
}
114+
.pagination a.active {
115+
background-color: #edf704; /* Cor de fundo para a página ativa */
116+
color: #050505; /* Cor do texto para a página ativa */
117+
}
110118

111119
.modal {
112120
position: fixed;

0 commit comments

Comments
 (0)