-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
89 lines (79 loc) · 3.41 KB
/
script.js
File metadata and controls
89 lines (79 loc) · 3.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// Initialiser EmailJS avec la clé publique
emailjs.init("yhKgECpzxd8luohBv"); // Remplace par ta clé publique EmailJS
// Sélecteurs
const toggleButton = document.querySelector('.toggle-button');
const navbarLinks = document.querySelector('.navbar-links');
const resumeButton = document.querySelector('.button-resume');
const contactForm = document.querySelector('.button-contact');
const contactFormElement = document.getElementById("contact-form"); // Vérification correcte du formulaire
const statusMessage = document.getElementById("status-message"); // Affichage des messages d'état
const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
// ✅ Responsive Navigation Toggle
if (toggleButton) {
toggleButton.addEventListener('click', () => {
navbarLinks.classList.toggle('active');
});
}
// ✅ Scroll vers les sections
document.querySelectorAll('.navbar-links li a').forEach(link => {
link.addEventListener('click', event => {
event.preventDefault();
const targetSection = document.querySelector(link.getAttribute('href'));
if (targetSection) {
window.scrollTo({
top: targetSection.offsetTop - 50, // Ajuster pour le menu fixe
behavior: 'smooth'
});
}
// Fermer le menu en mode mobile
if (navbarLinks.classList.contains('active')) {
navbarLinks.classList.remove('active');
}
});
});
// ✅ Ouvrir le CV dans un nouvel onglet
if (resumeButton) {
resumeButton.addEventListener('click', () => {
window.open('https://docs.google.com/document/d/1xybEm0nsDVYC_wU-yetr14s7YngPuWdEH_5X2meeEy8/edit?tab=t.0', '_blank');
});
}
// ✅ Vérification et soumission du formulaire de contact via EmailJS
if (contactFormElement) {
contactFormElement.addEventListener("submit", function(event) {
event.preventDefault(); // Empêcher le rechargement de la page
// Récupération des champs
const name = document.getElementById("name").value.trim();
const email = document.getElementById("email").value.trim();
const message = document.getElementById("message").value.trim();
// Vérification que tous les champs sont remplis
if (name === "" || email === "" || message === "") {
statusMessage.innerText = "❌ Please fill in all fields.";
statusMessage.style.color = "red";
return;
}
if (!emailPattern.test(email)) {
statusMessage.innerText = "❌ Please enter a valid email.";
statusMessage.style.color = "red";
return;
}
const serviceID = "scamara100"; // Remplace par ton vrai service_id
const templateID = "scamara100"; // Remplace par ton vrai template_id
const formData = {
user_name: name,
user_email: email,
message: message,
};
// Envoi de l'email avec EmailJS
emailjs.send(serviceID, templateID, formData)
.then(response => {
statusMessage.innerText = "✅ Message sent successfully!";
statusMessage.style.color = "green";
contactFormElement.reset(); // Réinitialise le formulaire
})
.catch(error => {
statusMessage.innerText = "❌ Error when sending.";
statusMessage.style.color = "red";
console.error("Erreur EmailJS :", error);
});
});
}