Skip to content

Commit 20f3495

Browse files
committed
fix logo marquee
1 parent 3c545ca commit 20f3495

File tree

3 files changed

+43
-49
lines changed

3 files changed

+43
-49
lines changed

frontend/components/Partners.jsx

Lines changed: 31 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import axios from 'axios';
44
import { H5 } from './Heading';
55
import { env } from '@/helpers/env-vars';
66
import { getImageUrl } from '@/helpers/utilities';
7+
import Marquee from 'react-fast-marquee';
78

89
const BACKEND_URL = env('NEXT_PUBLIC_BACKEND_URL');
910

@@ -70,58 +71,39 @@ const PartnersSection = () => {
7071
</H5>
7172
</div>
7273

73-
<div className="relative flex justify-center overflow-hidden">
74-
<div className="flex animate-marquee-delayed whitespace-nowrap items-center">
75-
{displayPartners.map((partner, index) => (
76-
<div
77-
key={`set1-${partner.id}-${index}`}
78-
className="inline-flex items-center justify-center h-20 min-w-[170px] max-w-[200px] w-auto mx-4 relative flex-shrink-0"
79-
>
80-
<div className="relative w-full h-full">
81-
<Image
82-
src={partner.src}
83-
alt={partner.name}
84-
fill
85-
className="object-contain hover:opacity-100 transition-opacity"
86-
sizes="(max-width: 768px) 120px, 200px"
87-
onError={(e) => {
88-
e.target.src = '/images/placeholder.jpg';
89-
}}
90-
/>
74+
<div className="relative overflow-hidden">
75+
<div className="whitespace-nowrap items-center">
76+
<Marquee
77+
gradient={false}
78+
speed={150}
79+
pauseOnHover={true}
80+
pauseOnClick={true}
81+
delay={0}
82+
play={true}
83+
direction="left"
84+
>
85+
{displayPartners.map((partner, index) => (
86+
<div
87+
key={`set1-${partner.id}-${index}`}
88+
className="h-20 min-w-[170px] max-w-[200px] w-auto mx-4 relative flex-shrink-0"
89+
>
90+
<div className="relative w-full h-full">
91+
<Image
92+
src={partner.src}
93+
alt={partner.name}
94+
fill
95+
className="object-contain hover:opacity-100 transition-opacity"
96+
sizes="(max-width: 768px) 120px, 200px"
97+
onError={(e) => {
98+
e.target.src = '/images/placeholder.jpg';
99+
}}
100+
/>
101+
</div>
91102
</div>
92-
</div>
93-
))}
103+
))}{' '}
104+
</Marquee>
94105
</div>
95106
</div>
96-
97-
<style jsx>{`
98-
@keyframes marqueeFromCenter {
99-
0% {
100-
transform: translateX(0);
101-
}
102-
100% {
103-
transform: translateX(-100%);
104-
}
105-
}
106-
107-
.animate-marquee-delayed {
108-
animation: marqueeFromCenter 25s linear infinite;
109-
animation-delay: 2s;
110-
transform: translateX(0);
111-
}
112-
113-
.animate-marquee-delayed:not(:hover) {
114-
animation-fill-mode: both;
115-
}
116-
117-
.relative:hover .animate-marquee-delayed {
118-
animation-play-state: paused;
119-
}
120-
121-
.relative {
122-
justify-content: center;
123-
}
124-
`}</style>
125107
</section>
126108
);
127109
};

frontend/package-lock.json

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"qs": "^6.14.0",
2323
"react": "^19.0.0",
2424
"react-dom": "^19.0.0",
25+
"react-fast-marquee": "^1.6.5",
2526
"react-markdown": "^10.1.0",
2627
"react-redux": "^9.2.0",
2728
"react-toastify": "^11.0.5",

0 commit comments

Comments
 (0)