Spaces:
Running
Running
undefined - Follow Up Deployment
Browse files- index.html +55 -24
index.html
CHANGED
@@ -6,6 +6,10 @@
|
|
6 |
<title>The Milestone Foundation - Ethical Lawsuit Funding</title>
|
7 |
<script src="https://cdn.tailwindcss.com"></script>
|
8 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
|
|
|
|
|
|
|
9 |
<style>
|
10 |
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');
|
11 |
|
@@ -127,7 +131,9 @@
|
|
127 |
|
128 |
</style>
|
129 |
|
130 |
-
|
|
|
|
|
131 |
window.addEventListener('scroll', function () {
|
132 |
const bar = document.querySelector('.sticky-trust-bar');
|
133 |
if (window.scrollY > 100) {
|
@@ -156,6 +162,37 @@
|
|
156 |
}
|
157 |
];
|
158 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
159 |
const amountSlider = document.getElementById('funding-amount');
|
160 |
const durationSlider = document.getElementById('case-duration');
|
161 |
const amountValue = document.getElementById('funding-amount-value');
|
@@ -164,24 +201,21 @@
|
|
164 |
const milestoneCost = document.getElementById('milestone-cost');
|
165 |
const savings = document.getElementById('savings');
|
166 |
|
167 |
-
function animateNumber(el, start, end) {
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
}
|
|
|
179 |
}
|
180 |
|
181 |
-
requestAnimationFrame(step);
|
182 |
-
}
|
183 |
-
|
184 |
-
|
185 |
let lastTraditional = 0;
|
186 |
let lastMilestone = 0;
|
187 |
let lastSavings = 0;
|
@@ -210,25 +244,25 @@ function animateNumber(el, start, end) {
|
|
210 |
|
211 |
amountSlider.addEventListener('input', updateCalculator);
|
212 |
durationSlider.addEventListener('input', updateCalculator);
|
213 |
-
|
214 |
|
|
|
215 |
document.querySelectorAll('.accordion-toggle').forEach(button => {
|
216 |
button.addEventListener('click', () => {
|
217 |
const content = button.nextElementSibling;
|
218 |
const icon = button.querySelector('i');
|
219 |
-
|
220 |
button.classList.toggle('active');
|
221 |
content.classList.toggle('max-h-0');
|
222 |
content.classList.toggle('max-h-[500px]');
|
223 |
-
|
224 |
-
// Toggle icon direction if you use one
|
225 |
if (icon) icon.classList.toggle('fa-chevron-down'), icon.classList.toggle('fa-chevron-up');
|
226 |
});
|
227 |
});
|
228 |
-
|
229 |
AOS.init({ duration: 800, once: true });
|
|
|
230 |
</script>
|
231 |
|
|
|
232 |
</head>
|
233 |
<body class="bg-transparent">
|
234 |
<div class="sticky-trust-bar">
|
@@ -776,8 +810,6 @@ function animateNumber(el, start, end) {
|
|
776 |
</section>
|
777 |
|
778 |
<!-- Vertical Timeline -->
|
779 |
-
<section class="py-16 px-4 bg-white">
|
780 |
-
<h2 class="text-3xl font-bold text-center text-teal-700 mb-12">How It Works (Vertical)</h2>
|
781 |
<div class="max-w-4xl mx-auto space-y-10 relative">
|
782 |
<div class="relative flex items-center" data-aos="fade-up">
|
783 |
<div class="w-1/3 flex justify-end pr-4">
|
@@ -837,7 +869,6 @@ function animateNumber(el, start, end) {
|
|
837 |
<i class="fas fa-smile-beam text-teal-600 text-xl"></i>
|
838 |
</div>
|
839 |
<p class="mt-2 text-gray-700">No win, no repayment. We're aligned with your outcome — always.</p>
|
840 |
-
</div>
|
841 |
</div>
|
842 |
</div>
|
843 |
|
|
|
6 |
<title>The Milestone Foundation - Ethical Lawsuit Funding</title>
|
7 |
<script src="https://cdn.tailwindcss.com"></script>
|
8 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
9 |
+
|
10 |
+
<script src="https://unpkg.com/[email protected]/dist/aos.js"></script>
|
11 |
+
<link href="https://unpkg.com/[email protected]/dist/aos.css" rel="stylesheet" />
|
12 |
+
|
13 |
<style>
|
14 |
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700&display=swap');
|
15 |
|
|
|
131 |
|
132 |
</style>
|
133 |
|
134 |
+
|
135 |
+
|
136 |
+
<script>
|
137 |
window.addEventListener('scroll', function () {
|
138 |
const bar = document.querySelector('.sticky-trust-bar');
|
139 |
if (window.scrollY > 100) {
|
|
|
162 |
}
|
163 |
];
|
164 |
|
165 |
+
|
166 |
+
|
167 |
+
|
168 |
+
document.addEventListener('DOMContentLoaded', () => {
|
169 |
+
|
170 |
+
let currentTestimonial = 0;
|
171 |
+
|
172 |
+
function updateTestimonial() {
|
173 |
+
const testimonial = testimonials[currentTestimonial];
|
174 |
+
const image = document.getElementById('testimonial-image');
|
175 |
+
const text = document.getElementById('testimonial-text');
|
176 |
+
|
177 |
+
// Animate fade out
|
178 |
+
document.getElementById('testimonial-container').classList.remove('opacity-100');
|
179 |
+
document.getElementById('testimonial-container').classList.add('opacity-0');
|
180 |
+
|
181 |
+
setTimeout(() => {
|
182 |
+
image.src = testimonial.image;
|
183 |
+
text.textContent = testimonial.text;
|
184 |
+
|
185 |
+
// Animate fade in
|
186 |
+
document.getElementById('testimonial-container').classList.remove('opacity-0');
|
187 |
+
document.getElementById('testimonial-container').classList.add('opacity-100');
|
188 |
+
|
189 |
+
currentTestimonial = (currentTestimonial + 1) % testimonials.length;
|
190 |
+
}, 500);
|
191 |
+
}
|
192 |
+
|
193 |
+
setInterval(updateTestimonial, 6000); // Change every 6 seconds
|
194 |
+
|
195 |
+
// Your slider setup
|
196 |
const amountSlider = document.getElementById('funding-amount');
|
197 |
const durationSlider = document.getElementById('case-duration');
|
198 |
const amountValue = document.getElementById('funding-amount-value');
|
|
|
201 |
const milestoneCost = document.getElementById('milestone-cost');
|
202 |
const savings = document.getElementById('savings');
|
203 |
|
204 |
+
function animateNumber(el, start, end) {
|
205 |
+
const duration = 400;
|
206 |
+
const startTimestamp = performance.now();
|
207 |
+
function step(currentTime) {
|
208 |
+
const elapsed = currentTime - startTimestamp;
|
209 |
+
const progress = Math.min(elapsed / duration, 1);
|
210 |
+
const value = Math.floor(start + (end - start) * progress);
|
211 |
+
el.textContent = `$${value.toLocaleString()}`;
|
212 |
+
if (progress < 1) {
|
213 |
+
requestAnimationFrame(step);
|
214 |
+
}
|
215 |
}
|
216 |
+
requestAnimationFrame(step);
|
217 |
}
|
218 |
|
|
|
|
|
|
|
|
|
219 |
let lastTraditional = 0;
|
220 |
let lastMilestone = 0;
|
221 |
let lastSavings = 0;
|
|
|
244 |
|
245 |
amountSlider.addEventListener('input', updateCalculator);
|
246 |
durationSlider.addEventListener('input', updateCalculator);
|
247 |
+
updateCalculator();
|
248 |
|
249 |
+
// Accordion
|
250 |
document.querySelectorAll('.accordion-toggle').forEach(button => {
|
251 |
button.addEventListener('click', () => {
|
252 |
const content = button.nextElementSibling;
|
253 |
const icon = button.querySelector('i');
|
|
|
254 |
button.classList.toggle('active');
|
255 |
content.classList.toggle('max-h-0');
|
256 |
content.classList.toggle('max-h-[500px]');
|
|
|
|
|
257 |
if (icon) icon.classList.toggle('fa-chevron-down'), icon.classList.toggle('fa-chevron-up');
|
258 |
});
|
259 |
});
|
260 |
+
});
|
261 |
AOS.init({ duration: 800, once: true });
|
262 |
+
|
263 |
</script>
|
264 |
|
265 |
+
|
266 |
</head>
|
267 |
<body class="bg-transparent">
|
268 |
<div class="sticky-trust-bar">
|
|
|
810 |
</section>
|
811 |
|
812 |
<!-- Vertical Timeline -->
|
|
|
|
|
813 |
<div class="max-w-4xl mx-auto space-y-10 relative">
|
814 |
<div class="relative flex items-center" data-aos="fade-up">
|
815 |
<div class="w-1/3 flex justify-end pr-4">
|
|
|
869 |
<i class="fas fa-smile-beam text-teal-600 text-xl"></i>
|
870 |
</div>
|
871 |
<p class="mt-2 text-gray-700">No win, no repayment. We're aligned with your outcome — always.</p>
|
|
|
872 |
</div>
|
873 |
</div>
|
874 |
|