Skip to content

Commit ced3c64

Browse files
committed
Update show more & show less
1 parent 60186dc commit ced3c64

File tree

2 files changed

+33
-20
lines changed

2 files changed

+33
-20
lines changed

main.js

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -32,17 +32,21 @@ document.addEventListener('DOMContentLoaded', () => {
3232
abstracts.forEach(abstract => {
3333
const content = abstract.querySelector('.abstract-content');
3434
const button = abstract.querySelector('.toggle-button');
35+
const fadeOverlay = abstract.querySelector('.fade-overlay');
36+
3537

3638
// Function to determine if the content is truncated
3739
const isTruncated = () => {
3840
return content.scrollHeight > content.clientHeight;
3941
};
4042

41-
// Show or hide the toggle button based on truncation
43+
// Show or hide the toggle button and fade overlay based on truncation
4244
if (isTruncated()) {
4345
button.classList.remove('hidden');
46+
fadeOverlay.classList.remove('hidden');
4447
} else {
4548
button.classList.add('hidden');
49+
fadeOverlay.classList.add('hidden');
4650
}
4751
});
4852

@@ -52,38 +56,46 @@ document.addEventListener('DOMContentLoaded', () => {
5256
button.addEventListener('click', () => {
5357
const abstract = button.closest('.abstract-wrapper');
5458
const content = abstract.querySelector('.abstract-content');
59+
const fadeOverlay = abstract.querySelector('.fade-overlay');
5560

5661
// Toggle the line-clamp class
57-
content.classList.toggle('line-clamp-[10]');
62+
content.classList.toggle('line-clamp-[8]');
5863

59-
// Update button text based on the new state
60-
const isExpanded = !content.classList.contains('line-clamp-[10]');
61-
const buttonText = button.querySelector('.button-text');
62-
buttonText.textContent = isExpanded ? 'Show Less' : 'Show More';
64+
if (content.classList.contains('line-clamp-[8]')) {
65+
// If content is clamped, show the fade overlay and set button to "Show More"
66+
fadeOverlay.classList.remove('hidden');
67+
button.querySelector('.button-text').textContent = 'Show More';
68+
} else {
69+
// If content is expanded, hide the fade overlay and set button to "Show Less"
70+
fadeOverlay.classList.add('hidden');
71+
button.querySelector('.button-text').textContent = 'Show Less';
72+
}
6373
});
6474
});
6575

66-
// Re-evaluate button visibility on window resize for responsiveness
76+
// Re-evaluate on window resize
6777
window.addEventListener('resize', () => {
6878
abstracts.forEach(abstract => {
6979
const content = abstract.querySelector('.abstract-content');
7080
const button = abstract.querySelector('.toggle-button');
81+
const fadeOverlay = abstract.querySelector('.fade-overlay');
7182

72-
// Reset line-clamp to accurately measure
73-
content.classList.add('line-clamp-[10]');
74-
// content.classList.remove('line-clamp-none'); // Ensure no conflicting classes
83+
// Reset line-clamp to check truncation accurately
84+
content.classList.add('line-clamp-[8]');
85+
fadeOverlay.classList.add('hidden');
7586

76-
// Determine truncation
7787
if (content.scrollHeight > content.clientHeight) {
7888
button.classList.remove('hidden');
89+
fadeOverlay.classList.remove('hidden');
90+
91+
// Reset content to clamped state if it was expanded
92+
if (!content.classList.contains('line-clamp-[8]')) {
93+
content.classList.add('line-clamp-[8]');
94+
button.querySelector('.button-text').textContent = 'Show More';
95+
}
7996
} else {
8097
button.classList.add('hidden');
81-
}
82-
83-
// If content is not truncated, ensure it is not expanded
84-
if (!content.classList.contains('line-clamp-[10]') && !button.classList.contains('hidden')) {
85-
content.classList.add('line-clamp-[10]');
86-
button.querySelector('.button-text').textContent = 'Show More';
98+
fadeOverlay.classList.add('hidden');
8799
}
88100
});
89101
});

pollen.rkt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,11 @@
4545
(span ([class "border-solid border-b border-zinc-300 flex-1"]))))
4646

4747
(define (abstract . body)
48-
`(div ([class "abstract-wrapper flex flex-col overflow-hidden italic text-base md:mx-8 mt-2 mb-4"])
49-
(div ([class "abstract-content line-clamp-[10] transition-all duration-300 ease-in-out mb-2"])
48+
`(div ([class "abstract-wrapper relative flex flex-col overflow-hidden italic text-base md:mx-8 mt-2 mb-4"])
49+
(div ([class "abstract-content line-clamp-[8] transition-all duration-300 ease-in-out mb-2"])
5050
,@body)
51-
(button ([class ,"toggle-button inline-flex justify-center items-center gap-2 self-center text-[@{jordy}]/80 hover:text-[@{jordy}] transition-all duration-200 hidden"])
51+
(div ([class "fade-overlay absolute bottom-6 left-0 w-full h-12 pointer-events-none bg-gradient-to-t from-white"]))
52+
(button ([class ,"toggle-button inset-x-0 bottom-0 inline-flex justify-center items-center gap-2 self-center bg-white text-[@{jordy}]/80 hover:text-[@{jordy}] transition-all duration-200 hidden"])
5253
(span ([class "button-text"]) "Show more")
5354
)))
5455

0 commit comments

Comments
 (0)