56 lines
2.2 KiB
PHP
56 lines
2.2 KiB
PHP
<?php
|
|
// Ce Footer sera inseré sur des pages grâce a la fonction require_once('./../elements/footer.php')
|
|
// Rappel des différentes pages : Acceuil, Projets, Contact
|
|
?>
|
|
</main>
|
|
|
|
<footer class="site-footer">
|
|
<div class="footer-content">
|
|
<p class="footer-copyright">
|
|
<!-- Logo droit d'auteur + année -->
|
|
© <?php echo date('Y'); ?> - Portfolio développé par Esteban MOUSSU
|
|
</p>
|
|
<div class="footer-links">
|
|
<a href="https://www.linkedin.com/in/estebanmoussu/" target="_blank" rel="noopener noreferrer">LinkedIn</a>
|
|
<a href="https://www.instagram.com/ours_one_" target="_blank" rel="noopener noreferrer">Instagram</a>
|
|
<a href="https://git.eldorianet.work/esteban" target="_blank" rel="noopener noreferrer">Git</a>
|
|
<span class="discord-handle" title="@ours1" onclick="alert('Discord : @ours1')">Discord</span>
|
|
<a href="../pages/cgu.php">CGU</a>
|
|
</div>
|
|
</div>
|
|
</footer>
|
|
|
|
<!-- Apparition des cartes au défilement (IntersectionObserver) -->
|
|
<script>
|
|
(function () {
|
|
// On respecte la préférence "réduire les animations" du système
|
|
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) return;
|
|
if (!('IntersectionObserver' in window)) return;
|
|
|
|
// Éléments qui apparaissent en glissant vers le haut quand ils entrent dans l'écran
|
|
var cibles = document.querySelectorAll(
|
|
'.project-card, .quick-link-card, .skill-category, .contact-card, ' +
|
|
'.login-card, .project-form-card, .cgu-card, ' +
|
|
'.page-header, .quick-links-header, .skills-header, .projects-title'
|
|
);
|
|
|
|
var observer = new IntersectionObserver(function (entries) {
|
|
entries.forEach(function (entry) {
|
|
if (entry.isIntersecting) {
|
|
entry.target.classList.add('visible');
|
|
observer.unobserve(entry.target);
|
|
}
|
|
});
|
|
}, { threshold: 0.1, rootMargin: '0px 0px -40px 0px' });
|
|
|
|
cibles.forEach(function (el, i) {
|
|
el.classList.add('reveal');
|
|
// Petit décalage en cascade pour les éléments d'une même grille
|
|
el.style.setProperty('--reveal-delay', ((i % 4) * 0.08) + 's');
|
|
observer.observe(el);
|
|
});
|
|
})();
|
|
</script>
|
|
|
|
</body>
|
|
</html>
|