betterbot: update index.html
This commit is contained in:
parent
397c21f387
commit
a8a6f429a5
1 changed files with 68 additions and 6 deletions
|
|
@ -17,10 +17,32 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<!-- Preload critical images for faster initial page load -->
|
||||||
|
<link rel="preload" as="image" href="/images/hero-bg.png">
|
||||||
|
<link rel="preload" as="image" href="/images/fresh-grads-bg.png">
|
||||||
|
<link rel="preload" as="image" href="/images/prenatal-bg.jpg">
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
html {
|
html {
|
||||||
scroll-behavior: smooth;
|
scroll-behavior: smooth;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Loading placeholder styles */
|
||||||
|
.image-placeholder {
|
||||||
|
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
|
||||||
|
background-size: 200% 100%;
|
||||||
|
animation: loading 1.5s infinite;
|
||||||
|
}
|
||||||
|
|
||||||
|
@keyframes loading {
|
||||||
|
0% { background-position: 200% 0; }
|
||||||
|
100% { background-position: -200% 0; }
|
||||||
|
}
|
||||||
|
|
||||||
|
.loaded {
|
||||||
|
transition: opacity 0.3s ease;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
|
|
@ -59,7 +81,7 @@
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<!-- Hero -->
|
<!-- Hero -->
|
||||||
<section class="relative min-h-[90vh] flex items-center justify-center bg-cover bg-center"
|
<section class="relative min-h-[90vh] flex items-center justify-center bg-cover bg-center hero-bg"
|
||||||
style="background-image:url('/images/hero-bg.png')">
|
style="background-image:url('/images/hero-bg.png')">
|
||||||
<!-- White overlay for better text contrast -->
|
<!-- White overlay for better text contrast -->
|
||||||
<div class="absolute inset-0 bg-white/60"></div>
|
<div class="absolute inset-0 bg-white/60"></div>
|
||||||
|
|
@ -83,7 +105,8 @@
|
||||||
<div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-8">
|
<div class="grid sm:grid-cols-2 lg:grid-cols-4 gap-8">
|
||||||
<!-- Fresh Grads -->
|
<!-- Fresh Grads -->
|
||||||
<div class="bg-white rounded-2xl shadow-md hover:shadow-xl transition overflow-hidden group">
|
<div class="bg-white rounded-2xl shadow-md hover:shadow-xl transition overflow-hidden group">
|
||||||
<div class="h-48 bg-cover bg-center" style="background-image:url('/images/fresh-grads-bg.png')">
|
<div class="h-48 bg-cover bg-center card-image image-placeholder"
|
||||||
|
data-bg="/images/fresh-grads-bg.png">
|
||||||
</div>
|
</div>
|
||||||
<div class="p-6">
|
<div class="p-6">
|
||||||
<h3 class="text-xl font-bold mb-2 text-brand-700">Fresh Graduates</h3>
|
<h3 class="text-xl font-bold mb-2 text-brand-700">Fresh Graduates</h3>
|
||||||
|
|
@ -96,7 +119,9 @@
|
||||||
|
|
||||||
<!-- Prenatal -->
|
<!-- Prenatal -->
|
||||||
<div class="bg-white rounded-2xl shadow-md hover:shadow-xl transition overflow-hidden group">
|
<div class="bg-white rounded-2xl shadow-md hover:shadow-xl transition overflow-hidden group">
|
||||||
<div class="h-48 bg-cover bg-center" style="background-image:url('/images/prenatal-bg.jpg')"></div>
|
<div class="h-48 bg-cover bg-center card-image image-placeholder"
|
||||||
|
data-bg="/images/prenatal-bg.jpg">
|
||||||
|
</div>
|
||||||
<div class="p-6">
|
<div class="p-6">
|
||||||
<h3 class="text-xl font-bold mb-2 text-brand-700">Prenatal & Family</h3>
|
<h3 class="text-xl font-bold mb-2 text-brand-700">Prenatal & Family</h3>
|
||||||
<p class="text-gray-500 text-sm mb-4">Protect your growing family. Secure their future from day
|
<p class="text-gray-500 text-sm mb-4">Protect your growing family. Secure their future from day
|
||||||
|
|
@ -108,7 +133,8 @@
|
||||||
|
|
||||||
<!-- Retirement -->
|
<!-- Retirement -->
|
||||||
<div class="bg-white rounded-2xl shadow-md hover:shadow-xl transition overflow-hidden group">
|
<div class="bg-white rounded-2xl shadow-md hover:shadow-xl transition overflow-hidden group">
|
||||||
<div class="h-48 bg-cover bg-center" style="background-image:url('/images/retirement-bg.png')">
|
<div class="h-48 bg-cover bg-center card-image image-placeholder"
|
||||||
|
data-bg="/images/retirement-bg.png">
|
||||||
</div>
|
</div>
|
||||||
<div class="p-6">
|
<div class="p-6">
|
||||||
<h3 class="text-xl font-bold mb-2 text-brand-700">Retirement Planning</h3>
|
<h3 class="text-xl font-bold mb-2 text-brand-700">Retirement Planning</h3>
|
||||||
|
|
@ -121,7 +147,9 @@
|
||||||
|
|
||||||
<!-- Legacy -->
|
<!-- Legacy -->
|
||||||
<div class="bg-white rounded-2xl shadow-md hover:shadow-xl transition overflow-hidden group">
|
<div class="bg-white rounded-2xl shadow-md hover:shadow-xl transition overflow-hidden group">
|
||||||
<div class="h-48 bg-cover bg-center" style="background-image:url('/images/legacy-bg.png')"></div>
|
<div class="h-48 bg-cover bg-center card-image image-placeholder"
|
||||||
|
data-bg="/images/legacy-bg.png">
|
||||||
|
</div>
|
||||||
<div class="p-6">
|
<div class="p-6">
|
||||||
<h3 class="text-xl font-bold mb-2 text-brand-700">Legacy & Wealth</h3>
|
<h3 class="text-xl font-bold mb-2 text-brand-700">Legacy & Wealth</h3>
|
||||||
<p class="text-gray-500 text-sm mb-4">Leave a lasting impact. Structure your wealth transfer
|
<p class="text-gray-500 text-sm mb-4">Leave a lasting impact. Structure your wealth transfer
|
||||||
|
|
@ -162,7 +190,7 @@
|
||||||
<path
|
<path
|
||||||
d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z" />
|
d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347z" />
|
||||||
<path
|
<path
|
||||||
d="M12 0C5.373 0 0 5.373 0 12c0 2.625.846 5.059 2.284 7.034L.789 23.492l4.625-1.474A11.932 11.932 0 0012 24c6.627 0 12-5.373 12-12S18.627 0 12 0zm0 21.818c-2.168 0-4.19-.586-5.932-1.609l-.425-.252-2.742.875.873-2.689-.277-.44A9.776 9.776 0 012.182 12c0-5.417 4.401-9.818 9.818-9.818S21.818 6.583 21.818 12s-4.401 9.818-9.818 9.818z" />
|
d="M12 0C5.373 0 0 5.373 0 12c0 2.625.846 5.059 2.284 7.034L.789 23.492l4.625-1.474A11.932 11.932 0 0012 24c6.627 0 12-5.373 12S18.627 0 12 0zm0 21.818c-2.168 0-4.19-.586-5.932-1.609l-.425-.252-2.742.875.873-2.689-.277-.44A9.776 9.776 0 012.182 12c0-5.417 4.401-9.818 9.818-9.818S21.818 6.583 21.818 12s-4.401 9.818-9.818 9.818z" />
|
||||||
</svg>
|
</svg>
|
||||||
Chat on WhatsApp
|
Chat on WhatsApp
|
||||||
</a>
|
</a>
|
||||||
|
|
@ -175,9 +203,43 @@
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
// Mobile navigation toggle
|
||||||
document.getElementById('navToggle').addEventListener('click', () => {
|
document.getElementById('navToggle').addEventListener('click', () => {
|
||||||
document.getElementById('mobileMenu').classList.toggle('hidden');
|
document.getElementById('mobileMenu').classList.toggle('hidden');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Lazy loading implementation for card images
|
||||||
|
const observerOptions = {
|
||||||
|
root: null,
|
||||||
|
rootMargin: '50px',
|
||||||
|
threshold: 0.1
|
||||||
|
};
|
||||||
|
|
||||||
|
const imageObserver = new IntersectionObserver((entries) => {
|
||||||
|
entries.forEach(entry => {
|
||||||
|
if (entry.isIntersecting) {
|
||||||
|
const img = entry.target;
|
||||||
|
const bgImage = img.getAttribute('data-bg');
|
||||||
|
|
||||||
|
// Create new image to preload
|
||||||
|
const newImg = new Image();
|
||||||
|
newImg.onload = () => {
|
||||||
|
img.style.backgroundImage = `url('${bgImage}')`;
|
||||||
|
img.classList.remove('image-placeholder');
|
||||||
|
img.classList.add('loaded');
|
||||||
|
};
|
||||||
|
newImg.src = bgImage;
|
||||||
|
|
||||||
|
imageObserver.unobserve(img);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}, observerOptions);
|
||||||
|
|
||||||
|
// Observe all card images for lazy loading
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const cardImages = document.querySelectorAll('.card-image');
|
||||||
|
cardImages.forEach(img => imageObserver.observe(img));
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue